AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

мультииндекстный транк (входящие звонки)

Asterisk IP PBX 12 сообщений -
#1

Привет. Подскажите, как определить индекс (номер) на который пришел звонок в сип транк? Конфигурация следующая, регистрируюсь у провайдера в sip.conf:

register = 0577660001:xxxxxxxxxx@10.0.0.1:5060/0577660001

В транке помимо номера 0577660001 еще индексы 0577660001 - 0577660009.
В данный момент, звонок на любой из девяти индексов приходит из транка как первый, в результате не могу
маршрутизировать каждый куда мне нужно.
#2

не указывать добавочный номер в строке регистрации.
_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
#3

убрал добавочный номер, но теперь в логах "не видно" откуда идет входящий звонок

Код:
[Jun 14 14:38:07] VERBOSE[32391] netsock2.c: == Using SIP RTP TOS bits 184
[Jun 14 14:38:07] VERBOSE[32391] netsock2.c: == Using SIP RTP CoS mark 5
[Jun 14 14:38:07] VERBOSE[32489] pbx.c: -- Executing [s@from-trunk-sip-Datagrp2:1] Set("SIP/Datagrp2-00000005", "GROUP()=OUT_5") in new stack
[Jun 14 14:38:07] VERBOSE[32489] pbx.c: -- Executing [s@from-trunk-sip-Datagrp2:2] Goto("SIP/Datagrp2-00000005", "from-trunk,s,1") in new stack
[Jun 14 14:38:07] VERBOSE[32489] pbx.c: -- Goto (from-trunk,s,1)
[Jun 14 14:38:07] VERBOSE[32489] pbx.c: -- Executing [s@from-trunk:1] NoOp("SIP/Datagrp2-00000005", "No DID or CID Match") in new stack
[Jun 14 14:38:07] VERBOSE[32489] pbx.c: -- Executing [s@from-trunk:2] Answer("SIP/Datagrp2-00000005", "") in new stack
[Jun 14 14:38:07] VERBOSE[32489] pbx.c: -- Executing [s@from-trunk:3] Wait("SIP/Datagrp2-00000005", "2") in new stack
[Jun 14 14:38:07] NOTICE[32489] channel.c: Dropping incompatible voice frame on SIP/Datagrp2-00000005 of format ulaw since our native format has changed to 0x8 (alaw)
[Jun 14 14:38:07] NOTICE[32489] channel.c: Dropping incompatible voice frame on SIP/Datagrp2-00000005 of format ulaw since our native format has changed to 0x8 (alaw)
[Jun 14 14:38:09] VERBOSE[32489] pbx.c: -- Executing [s@from-trunk:4] Playback("SIP/Datagrp2-00000005", "ss-noservice") in new stack
[Jun 14 14:38:09] VERBOSE[32489] file.c: -- Playing 'ss-noservice.slin' (language 'ru')



Как его принять и маршрутизировать если "No DID or CID Match"?
#4

включите SIP debug на транке и покажите, какой INVITE приходит от провайдера в момент звонка Вам.
_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
#5

Пример звонока в транк на индекс 0577660002

Код:
[Jun 14 19:26:15] VERBOSE[32391] chan_sip.c:

INVITE sip:s@193.x.x.x:5060;transport=udp SIP/2.0
Allow: UPDATE,REFER,INFO
Call-ID: 11319-JZ-01a12c6c-4e5fa61b3@sip.xxx.ua
Contact:
Content-Type: application/sdp
CSeq: 26599318 INVITE
From: "057766xxxx" ;tag=11319-FH-01a12c6d-5eac1cf33
Max-Forwards: 28
To:
User-Agent: Cirpack/v4.56 (gw_sip)
Via: SIP/2.0/UDP 10.0.0.1:5060;branch=z9hG4bK-345E-5A0275
Content-Length: 273


Каким образом можно использовать поле "To:" для разруливания роутов?
#6

Что-то кроме использования парсинга SIP_HEADER(To) больше ничего в голову не приходит.

Мне таких ситуаций не встречалось, может стоит договориться с провайдером на общение без регистрации?
Что бы они слали сразу вызов на нужный номер.

_________________
Gentoo Linux || Asterisk 11.2-cert3
Решения телефонии на базе Asterisk || http://it-need.ru
#7

Я не против, можно ли это сделать через штатные конфиги астериск? (без привлечения программиста).
#8

Лучше попинать прова почему он DID не шлет. А еще лучше - покажите БОЛЕЕ плный момент прихода звонка нежели в первом сообщении
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#9

Цитата:
Лучше попинать прова почему он DID не шлет. А еще лучше - покажите БОЛЕЕ плный момент прихода звонка нежели в первом сообщении
Датагрупу в лом(простите за выражение) создавать отдельно на каждый индекс свою учётку, а по другому у них не получится. По крайней мере так было 4 года назад, когда с ними на эту тему общался
Если в кратце, то настраивается следующим образом:
Код:
sip.conf
register=0577664000:ххххt@10.0.0.4
extension.conf
[data1]
exten => s,1,Wait(0)
exten => s,2,Answer()
exten => s,3,NoOP(${CALLERID(all)})
exten => s,4,Set(NUM=${SIP_HEADER(TO):5})
exten => s,5,Set(NUM=${CUT(NUM,@,1)})
exten => s,8,Goto(${NUM},1)

exten => 0577664000,1,NoOP()
exten => 0577664001,4,NoOP()
...
exten => 0577664040,1,Dial(SIP/4040,13,mrtT)
exten => 0577664040,2,Dial(SIP/data7664040/0503437470,30,mrtT)
...


Спасибо пользователю ded, насколько помню, или отсюда, или с другого рускоязычного форума по астериску, наталкнул на дальнейшее и помог с примером.
#10

Answer, имхо, лишний.
#11

Answer - у меня были какието траблы на 1.4, без него не хотело работать, насколько я помню, или чтото ещё, поэтому он и стоит, неудобно и неправильно, даже если ты не ответил, а у звонящего уже капает копеечка. Сейчас 1.8, править лень, хотя надо будет посмотреть.
#12

Спасибо, buryanov, все получилось.