Получение добавочного номера, на который был принят вызов внутри функции - звездочка - PullRequest
1 голос
/ 29 марта 2011

У меня есть сервер звездочки, настроенный как телефонная станция.У меня есть 100 расширений от 00 до 99. Я запускаю определенные функции для каждого из этих расширений.Некоторым из этих функций может потребоваться расширение, на котором был принят вызов, чтобы быть доступным.Как я могу получить доступ к тому же?Например,

Скажем, на внутренний номер 55 поступает вызов.
55 имеет функцию, связанную с ним.Эта функция должна принимать значение 55 в качестве входного параметра.Как мне это сделать?

Я пробовал следующее:

exten => 0,n,Verbose(1, "Call on ${EXTEN}-${CHANNEL}")  

Вывод: Call on 0-DAHDI/20-1

Спасибо,
Шрирам Шанкар.

1 Ответ

1 голос
/ 07 июля 2011

Ответ, который вы ищете, зависит от пути, по которому проходит вызов через вашу систему.Самый простой способ определить ответ на ваш вопрос - это выполнить вызов и затем выполнить следующие команды из интерфейса командной строки Asterisk:

> core show channels

Это покажет вам, какие каналы активны.Найдите название канала вашего вызова.

core show channel [channel-name]

Это выведет массив сведений о канале, включая различные установленные переменные и их соответствующие значения.Найдите добавочный номер, который вы пытаетесь получить в полях значений, а затем посмотрите, каково имя соответствующей переменной.Это может быть $ {CALLERID (num)}, $ {CALLERID (dnid)}, что-то из переменной $ {CDR} или даже где-то еще.

Если вы не найдете его в выходных данных, созданных "core show channel [channel-name]", вам, возможно, придется проследить путь плана набора, который принимает вызов, и попытаться установить переменную на раннем этапе, когдаинформация DID по-прежнему доступна.

...