Подключение к IP-PBX Elastix телефонных номеров sipgate из Германии

Рассмотрим, как можно организовать подстановку номера звонящего абонента в IP-PBX Elastix при исходящих вызовах через оператора ТСОП sipgate GmbH в зависимости от внутреннего абонента. Как организуется стык в IP-PBX Asterisk я уже рассказывал ранее: http://uzlec.ru/podklyuchenie-k-ip-pbx-asterisk-telefonnyx-nomerov-iz-germanii-po-sip.html Поэтому в этой заметке остановимся лишь на том, что касается номера звонящего применительно к IP-PBX Elastix v2.5. Эта задача осложняется тем, что оператору sipgate GmbH недостаточно просто правильно заполнить значение CallerID, но также необходимо добавить ряд дополнительных полей в SIP. Подробнее об этом написано в официальной инструкции: http://www.sipgate.de/beta/public/static/sipgate.de/media/Das_Produkt_sipgate_Trunking.pdf
Создаем транк SIP в разделе "Trunks".

IP-PBX ElastixОбратите внимание на значение полей "CID Options" и "Outbound CallerID". В последнем, необходимо указать номер, который будет использоваться при исходящих звонках по умолчанию.
В поле "PEER Details" указываем:

username=1234567t0
type=friend
transport=udp,tcp
secret=XXXXXXXXXX
registertimeout=600
qualify=yes
port=5060
permit=0.0.0.0/0.0.0.0
outboundproxy=sipconnect.sipgate.de
nat=yes
insecure=port,invite
host=sipconnect.sipgate.de
fromuser=1234567t0
fromdomain=sipconnect.sipgate.de
faxdetect=no
encryption=no
dtmfmode=rfc2833
disallow=all
deny=0.0.0.0/0.0.0.0
defaultuser=1234567t0
context=from-pstn
canreinvite=no
allow=alaw&ulaw
accountcode=sipgate-1234567t0

Строка регистрации: "sipgate-1234567t0?udp://1234567t0:XXXXXXXXXX@sipconnect.sipgate.de:5060/49XXXXXXXXXXXX20".
Теперь необходимо дополнить макрос "macro-outbound-callerid". Вот как выглядят его последние три строки для Elastix v2.5:


18. ExecIf($["${OUTKEEPCID_${ARG1}}" = "cnum"]?Set(CALLERID(name)=)) [pbx_config]
19. Set(CDR(outbound_cnum)=${CALLERID(num)}) [pbx_config]
20. Set(CDR(outbound_cnam)=${CALLERID(name)}) [pbx_config]

Добавим в файл "/etc/asterisk/extensions_override_freepbx.conf" следующие строки:

[macro-outbound-callerid]
exten => s,21,SipAddHeader(P-Preferred-Identity: <sip:${CALLERID(num)}@sipconnect.sipgate.de>)
exten => s,22,SipAddHeader(Diversion: <${CALLERID(num)}@sipconnect.sipgate.de>)

Перезагружаем план нумерации в Asterisk, и вот как изменяется "macro-outbound-callerid":


18. ExecIf($["${OUTKEEPCID_${ARG1}}" = "cnum"]?Set(CALLERID(name)=)) [pbx_config]
19. Set(CDR(outbound_cnum)=${CALLERID(num)}) [pbx_config]
20. Set(CDR(outbound_cnam)=${CALLERID(name)}) [pbx_config]
21. SipAddHeader(P-Preferred-Identity: <sip:${CALLERID(num)}@sipconnect.sipgate.de>) [pbx_config]
22. SipAddHeader(Diversion: <${CALLERID(num)}@sipconnect.sipgate.de>) [pbx_config]

Теперь для того, что бы в зависимости от внутреннего абонента инициировавшего внешний звонок через sipgate GmbH использовались разные номера звонящего необходимо заполнить поле "Outbound CID" в свойствах Extension.

IP-PBX ElastixНастройка маршрутизации исходящих звонков и прием входящих звонков настраивается традиционно в разделах "Outbound Routes" и "Inbound Routes" соответственно. Там никаких хитростей нет. Подробно на этих вопросах я останавливаться не буду.
К достоинствам описанного метода можно отнести его универсальность: нет нужды вручную править файлы настроек Asterisk при каждом добавлении внутреннего номера, все можно сделать через интерфейс Web Elastix. А к недостаткам то, что дополнительные поля будут добавляться для всех прописанных транков, а не только для sipgate GmbH. Впрочем, практика показала, что ничего страшного в этом нет. Они просто игнорируются другими операторами.

Поделиться ссылкой:

Оставить комментарий


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>