Имеется 5 входящих линий, из них две сразу падают в номер s (sipnet, мультифон), а остальные три - не совсем обычные.
У Задармы и YouMagic'а заданы мультииндексы, поэтому падают они в свои назначенные номера, и там разгребаются по ДИДам, а Билайн обязан
падать в номер, совпадающий со своим ДИДом, иначе транк не регистрируется.
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
Код: Выделить всё
[incoming]
exten => s,1,Answer(1000) ; отвечаем с задержкой, чтоб не съелось первое слово
exten => s,n,NoOp(${CALLERID(num)}) ; чтоб консоль не пустовала :-)
exten => s/_+Z!,n,Set(CALLERID(num)=${CALLERID(num):1}) ; обрезаем начальный плюс, если он есть
exten => s,n(inpoint),GotoIf($[${BLACKLIST()}=1]?banned,s,1) ; если забанен - запателлер тебе в уши и гудбай
exten => s,n,Gosub(PutInStack,s,1) ; сунем входящий номер в список входящих
exten => s,n,Background(priv-trying) ; Здрасьте, Ваш звонок очень важен для нас
exten => s,n,WaitExten() ; Хочу добавку!
.....бла-бла-бла с номером s
exten => inzadarma,1,Answer(1000) ; отвечаем с задержкой, чтоб не съелось первое слово
exten => inzadarma,n,GotoIf($[${SIP_HEADER(TO):5:5}=AAAAA]?to_dima,s,1) ; Позвонили на AAAAA? Это димин прямой
exten => inzadarma,n,GotoIf($[${SIP_HEADER(TO):5:5}=BBBBB]?to_vasya,s,1) ; Позвонили на BBBBB? Это васин
exten => inzadarma,n,Goto(s,1) ; Позвонили на другой? Тогда в обработочку
exten => inyoumagic,1,GotoIf($[${SIP_HEADER(TO):5:15}=883140DDDDDDDDD]?to_dima,s,1) ; На димин длинный мтт? Вот и общайтесь
exten => inyoumagic,n,Goto(s,1) ; В обработочку
exten => ${DID_BEELINE},1,Goto(s,1) ; Per anus ad astra!
exten => fromVoxeo,1,Goto(s,inpoint) ; С воксео приходит жестко мной заданный CID. Можно не проверять.
exten => _EEEEE.,1,Goto(outgoing,${EXTEN:5},1) ; И не нужна никакая ДИСА :-)
Казалось бы - всё зашибись. Однако нифига. Сипнет отрабатывает как надо, плюс режется. YouMagic с билайном тоже. А вот Задарма и Мультифон спотыкаются на третьей строчке (обрезателе плюса) и консоль жизнерадостно сообщает:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
== Using SIP RTP CoS mark 5
-- Executing [s@incoming:1] Answer("SIP/multifon-000000ec", "1000") in new stack
-- SIP/YouMagic-000000eb is making progress passing it to SIP/11-000000ea
-- SIP/YouMagic-000000eb answered SIP/11-000000ea
-- Executing [s@incoming:2] NoOp("SIP/multifon-000000ec", "7499704ffff") in new stack
-- Auto fallthrough, channel 'SIP/multifon-000000ec' status is 'UNKNOWN'
== Spawn extension (ExtDial, 801892570qqqqq, 9) exited non-zero on 'SIP/11-000000ea'
-- Executing [s@incoming:1] Answer("SIP/multifon-000000ec", "1000") in new stack
-- SIP/YouMagic-000000eb is making progress passing it to SIP/11-000000ea
-- SIP/YouMagic-000000eb answered SIP/11-000000ea
-- Executing [s@incoming:2] NoOp("SIP/multifon-000000ec", "7499704ffff") in new stack
-- Auto fallthrough, channel 'SIP/multifon-000000ec' status is 'UNKNOWN'
== Spawn extension (ExtDial, 801892570qqqqq, 9) exited non-zero on 'SIP/11-000000ea'