Pjsip позволяет держать несколько регистраций на одном аккаунте. В этой заметке узнаем как легко и просто на них позвонить. Для этого требуется указать следующие настройки в AOR:
[max]
type=endpoint
context=2voip.ru
...
[auth_max]
type=auth
....
[max]
type=aor
max_contacts=5
remove_existing=no
remove_unavailable=yes
P.s. “лишние” настройки endpoint и auth скрыл, чтоб не мешали.
Далее регистрируемся с нескольких sip-телефонов/софтфонов. В данном случае их два.
asterisk*CLI> pjsip show contacts
Contact: <Aor/ContactUri..............................> <Hash....> <Status> <RTT(ms)..>
================================================================================
Contact: fanvil_001/sip:fanvil_001@192.168.88.147:5899 f48acd7be4 NonQual nan
Contact: kamailio/sip:192.168.88.50:55060 8a281e7bd9 NonQual nan
Contact: max/sip:04673589@192.168.88.250:42538 db92fd0fe6 NonQual nan
Contact: max/sip:max@192.168.88.250:5060 ced0b0816b NonQual nan
В /etc/asterisk/extensions.conf для соответствующего номера делаем следующий план набора:
[2voip.ru]
exten => 102,1,NoOp()
same => n,Dial(${PJSIP_DIAL_CONTACTS(max)})
same => n,Hangup()
Делаем проверочный вызов:
-- Executing [102@2voip.ru:1] NoOp("PJSIP/fanvil_001-00000000", "") in new stack
-- Executing [102@2voip.ru:2] Dial("PJSIP/fanvil_001-00000000", "PJSIP/max/sip:max@192.168.88.250:5060&PJSIP/max/sip:04673589@192.168.88.250:42538") in new stack
-- Called PJSIP/max/sip:max@192.168.88.250:5060
-- Called PJSIP/max/sip:04673589@192.168.88.250:42538
-- PJSIP/max-00000002 connected line has changed. Saving it until answer for PJSIP/fanvil_001-00000000
-- PJSIP/max-00000001 connected line has changed. Saving it until answer for PJSIP/fanvil_001-00000000
-- PJSIP/max-00000002 is ringing
-- PJSIP/max-00000001 is ringing
-- PJSIP/max-00000002 answered PJSIP/fanvil_001-00000000
-- Channel PJSIP/max-00000002 joined 'simple_bridge' basic-bridge <66c2a6a6-937c-40f1-9d7e-7b0691c97328>
-- Channel PJSIP/fanvil_001-00000000 joined 'simple_bridge' basic-bridge <66c2a6a6-937c-40f1-9d7e-7b0691c97328>
-- Channel PJSIP/fanvil_001-00000000 left 'simple_bridge' basic-bridge <66c2a6a6-937c-40f1-9d7e-7b0691c97328>
-- Channel PJSIP/max-00000002 left 'simple_bridge' basic-bridge <66c2a6a6-937c-40f1-9d7e-7b0691c97328>
== Spawn extension (2voip.ru, 102, 2) exited non-zero on 'PJSIP/fanvil_001-00000000'
Как видим, у нас в приложении Dial() оказалась следующая конструкция:
PJSIP/max/sip:max@192.168.88.250:5060&PJSIP/max/sip:04673589@192.168.88.250:42538
Вызов отправился на оба контакта.
-- Called PJSIP/max/sip:max@192.168.88.250:5060
-- Called PJSIP/max/sip:04673589@192.168.88.250:42538