Невозможно установить идентификатор вызывающего абонента для второй карты Дахди в звездочке, используя 2 pri-in с 2 картами

У меня есть 2 карты DAHDI и 2 pri в моей системе centos 6.

Я не могу установить идентификатор вызывающего абонента в файле .call для второго номера. Средство для pri, прикрепленного к верхней карте, я могу установить его идентификатор вызывающего абонента при переадресации, но не нижний, он показывает номер DID верхнего пилотного номера карты (он должен показывать нижний номер pri, поскольку я устанавливаю его на CallerId varible в файле вызовов Если я переворачиваю pri, он устанавливает тот же идентификатор вызывающего абонента для верхнего pri, поэтому кажется, что проблема в какой-то конфигурации.

Кажется, я не могу понять, в чем заключается ошибка конфигурации, которую я делаю.

system.conf

# Span 1: WCT1/0 "Wildcard TE121 Card 0" (MASTER) CCS/HDB3/CRC4 ClockSource 
span=1,1,0,ccs,hdb3,crc4
# termtype: te
bchan=1-15,17-31
dchan=16
echocanceller=mg2,1-15,17-31

# Span 2: WCT1/1 "Wildcard TE121 Card 1" 
span=2,2,0,ccs,hdb3,crc4
# termtype: te
bchan=32-46,48-62
dchan=47
echocanceller=mg2,32-46,48-62

# Global data

loadzone    = us
defaultzone = us

chan_dahdi.conf

[channels]
context=from-pstn-old
usecallerid=yes
callwaiting=yes
echocancel=yes
echocancelwhenbridged=yes
rxgain=0.0
txgain=0.0
pridialplan=unknown
prilocaldialplan=unknown
switchtype=euroisdn
language = yes
relaxdtmf = yes
dtmfmode=auto
transfer=yes

;Span 1:
context=from-pstn
group=0
callgroup=1
pickupgroup=1
echocancel=yes
signalling=pri_cpe
channel => 1-15,17-31,32-46,48-62
context=default
usecallerid=yes
callerid=asreceived
hanguponpolarityswitch=yes
answeronpolarityswitch=yes
cidstart=polarity_IN
cidsignalling=dtmf
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
relaxdtmf=yes
rxgain=0.0
txgain=0.0
group=1
callgroup=1
pickupgroup=1
immediate=no
useincomingcalleridondahditransfer=yes
busydetect=yes
busycount=2

Мой файл звонков

Channel: DAHDI/g0/09*********
MaxRetries: 0
WaitTime: 30
Context: outgoing 
Extension: *******              //my did
Callerid: 0**********          //my did with area code

Мой extensions.conf слишком длинный, поэтому я размещаю соответствующую часть

  same => n,Set(CALLERID(all)=0**0${DID})
  same => n,dial(DAHDI/g0/0${NUMBER},20,mtM(ANSWEREDED))

где ${DID} и $ {NUMBER} - динамические переменные. Любая помощь будет оценена по достоинству.

Спасибо


person codegasmer    schedule 06.05.2015    source источник


Ответы (1)


Хорошо, начнем с первого - у вас есть несколько ошибок в вашем файле chan_dahdi.conf. Например:

hanguponpolarityswitch=yes
answeronpolarityswitch=yes
cidstart=polarity_IN
cidsignalling=dtmf

Не требуются при работе со схемами PRI. Цепи PRI полностью цифровые, смена полярности используется для сигнализации FXO / FXS.

Теперь, что касается вашего вопроса, я предполагаю, что ваш файл вызовов выглядит так:

Channel: SIP/g1/some_number
Extension: Number_B
Priority: Your Priority
Conext: Some_Context
CallerID: Some_CallerID

Теперь уловка состоит в том, чтобы установить идентификатор вызывающего абонента для Number_B через диалплан, поскольку CallerID в файле вызовов предназначен для аргумента «Канал». Как только вызов поступит на сервер Asterisk, Number_B получит номер в канале в качестве идентификатора вызывающего абонента, и это имеет смысл. Если вы хотите установить другой номер, вам нужно будет использовать следующее:

exten => _X.,n,Set(CALLERID(num)=some_callerid)

Для того, чтобы изменить идентификатор вызывающего абонента на отрезке Number_B.

*** Новое дополнение:

Удалите следующие строки из dahdi.conf:

useincomingcalleridondahditransfer=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes

Перезагрузите Asterisk и попробуйте еще раз.

person Nir Simionovich    schedule 12.05.2015
comment
спасибо за ответ, но я устанавливаю идентификатор вызываемого абонента из диалплана и в файле вызовов, но он не работает - person codegasmer; 12.05.2015
comment
Не могли бы вы загрузить свою конфигурацию на pastebin.com или поместить их здесь, чтобы я мог их просмотреть? Кстати, чтобы установить CallerID для исходящего вызова из цепи PRI, вам нужен ваш оператор, чтобы вы могли это сделать. Например, в Израиле и Великобритании это запрещено. Вы проверили проблему у своего оператора связи? - person Nir Simionovich; 13.05.2015
comment
какой файл я должен опубликовать, вы имели в виду extension.conf. Я могу установить идентификатор вызывающего абонента, если я переверну pri на первую карту, как я сказал в своем вопросе, поэтому я думаю, что могу установить идентификатор вызывающего абонента.Эта проблема возникает только для более низкой карты pri - person codegasmer; 13.05.2015
comment
Ознакомьтесь с новым дополнением к приведенному выше ответу, попробуйте. - person Nir Simionovich; 14.05.2015
comment
Я пробовал ваше решение, но оно не работает. Изменил мой файл, перезапустил звездочку, перезагрузил chan_dahdi, но все тот же - person codegasmer; 14.05.2015
comment
Не могли бы вы опубликовать ваши extension.conf и файл .call, который вы используете? - person Nir Simionovich; 14.05.2015
comment
Я отредактировал свой вопрос, мой файл расширений слишком длинный, поэтому я публикую соответствующую часть, где я устанавливаю идентификатор вызываемого абонента. - person codegasmer; 14.05.2015
comment
Не могли бы вы опубликовать образец консоли Asterisk, использующей этот диалплан? - person Nir Simionovich; 14.05.2015
comment
Как насчет того, чтобы изменить настройку таким образом, чтобы звонок был инициирован на одном канале PRI, а исходящий - на другом. В настоящее время все настроено как группа 0, что несколько сбивает с толку вашу проблему. - person Nir Simionovich; 14.05.2015
comment
Позвольте нам продолжить это обсуждение в чате. - person Nir Simionovich; 14.05.2015