سؤال

كيف يمكنني الحصول على النجمة إلى توجيه المكالمات الواردة على أساس مطابقة مكالمة واردة رقم مع الرقم إلى الأمام ؟ كل الأرقام المخزنة في قاعدة بيانات MySQL.

هل كانت مفيدة؟

المحلول 3

الحل كنت أبحث عنه انتهى تبدو مثل هذا:

[default]
exten => _X.,1,Set(ARRAY(${EXTEN}_phone)=${DTC_ICF(phone_number,${EXTEN})})
exten => _X.,n(callphone),Dial(SIP/metaswitch/${${EXTEN}_phone},26)
exten => _X.,n(end),Hangup()

نصائح أخرى

آسف طويلة نموذج التعليمات البرمجية ، ولكن أكثر من نصف من ذلك هو تصحيح التعليمات البرمجية لمساعدتك في الحصول على اقامة.

أنا على افتراض الملقم الخاص بك بالفعل النسخة الحديثة من بي إتش بي (في /usr/bin/php) مع شركة تنمية نفط عمان ، مكتبة و أن لديك جدول قاعدة البيانات اسمه fwd_table مع الأعمدة caller_id و destination.

في /var/lib/النجمة/كونا-bin الحصول على نسخة من PHP AGI المكتبة.ثم إنشاء ملف اسمه شيء مثل forward_by_callerid.agi الذي يحتوي على:

#!/usr/bin/php
<?php
ini_set('display_errors','false'); //Supress errors getting sent to the Asterisk process

require('phpagi.php');
$agi = new AGI();

try {
    $pdo = new PDO('mysql:host='.$db_hostname.';dbname='.$db_database.';charset=UTF-8', $db_user, $db_pass);
} catch (PDOException $e) {
    $agi->conlog("FAIL: Error connecting to the database! " . $e->getMessage());
    die();
}

$find_fwd_by_callerid = $pdo->prepare('SELECT destination FROM fwd_table WHERE caller_id=? ');

$caller_id = $agi->request['agi_callerid'];

if($callerid=="unknown" or $callerid=="private" or $callerid==""){
    $agi->conlog("Call came in without caller id, I give up");
    exit;
}else{
    $agi->conlog("Call came in with caller id number $caller_id.");
}

if($find_fwd_by_callerid->execute(array($caller_id)) === false){
    $agi->conlog("Database problem searching for forward destination (find_fwd_by_callerid), croaking");
    exit;
} 
$found_fwds = $find_fwd_by_callerid->fetchAll();
if(count($found_fwds) > 0){
    $destination = $found_contacts[0]['destination'];
    $agi->set_variable('FWD_TO', $destination);

    $agi->conlog("Caller ID matched, setting FWD_TO variable to ''");
}

?>

ثم من خطة الطلب يمكنك الاتصال مثل هذا:

AGI(forward_by_callerid.agi)

و إذا كان لديك قاعدة بيانات تطابق ، فإنه سيتم تعيين متغير FWD_TO مع الخير.يرجى تعديل السؤال الخاص بك إذا كنت بحاجة إلى المزيد من المساعدة في الحصول على هذا دمجها في خطة الهاتفي الخاص بك.

هذه المادة ينبغي أن تفعل خدعة.انها حوالي 3 خطوط من التعليمات البرمجية وبعض استعلامات بسيطة لإضافة وإزالة قواعد إعادة التوجيه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top