First time here? Check out the FAQ!

Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Не обрабатывается context из файла extensions_custom.conf

0

Добрый вечер всем! Для разделения звонков по EXT, приходящих через один транк, использую инструкции из сайта FreePBX.

Файл: extensions_custom.conf

[custom-get-did-from-sip]
;Get the DID of a SIP trunk when the provider doesnt send it
exten
=> s,1,Noop(Fixing DID using information from SIP TO header)
exten
=> s,n,Set(pseudodid=${SIP_HEADER(To)})
exten
=> s,n,Set(pseudodid=${CUT(pseudodid,@,1)})
exten
=> s,n,Set(pseudodid=${CUT(pseudodid,:,2)})
exten
=> s,n,Goto(from-trunk,${pseudodid},1)

Но не тут то было. Заметил, что Elastix сам создает на каждый транк Context типа: context=from-trunk-sip-ИмяТранка

Хорошо, нашел:

[from-trunk-sip-ИмяТранка]
include
=> from-trunk-sip-ИмяТранка-custom
exten
=> _.,1,Set(GROUP()=OUT_8)
exten
=> _.,n,Goto(from-trunk,${EXTEN},1)

и записал в файл extensions_custom.conf

[from-trunk-sip-ИмяТранка-custom]
exten
=> s,1,Noop(Fixing DID using information from SIP TO header)
exten
=> s,n,Set(pseudodid=${SIP_HEADER(To)})
exten
=> s,n,Set(pseudodid=${CUT(pseudodid,@,1)})
exten
=> s,n,Set(pseudodid=${CUT(pseudodid,:,2)})
exten
=> s,n,Goto(from-trunk,${pseudodid},1)

Не работает. Добавил то же в файл extensionsoverrideelastix.conf Не помогает.

Что я не так делаю? asterisk 1.8.11.0 + freepbx 2.8.1 + elastix 2.3.0

спросил May 14 '12

bsa Gravatar bsa
11 2 2 2

обновил May 15 '12

zzuz Gravatar zzuz flag of Russian Federation
7174 2 6 75
http://line24.ru/

Comments

1

Что значит "Не работает"? Что пишет в консоли? dialplan reload делали? И отформатируйте код, смотреть невозможно.

Aven (May 14 '12)edit

5 Ответов

0

Olpag, сорри, не заметил сразу ответ. Действительно, неизвестно как он обрабатывает эти инклюды. Вроде уже все перепробовал. Работает только [from-pstn-custom], но при наборе своих номеров, зацикливается. В остальных вариантах просто не обрабатывает. Например, сейчас:

PBX*CLI> dialplan show from-trunk-sip-FreecoNet_(vensys)                        [ Context 'from-trunk-sip-FreecoNet_(vensys)' created by 'pbx_config' ]
 
'_.' =>           1. Set(GROUP()=OUT_8)                         [pbx_config]
                   
2. Goto(from-trunk,${EXTEN},1)                [pbx_config]
 
Include =>        'from-trunk-sip-FreecoNet_(vensys)-custom'    [pbx_config]

-= 1 extension (2 priorities) in 1 context. =-

'[from-trunk-sip-FreecoNet(vensys)-custom]' находится в 'extensionsoverride_freepbx.conf'

PBX*CLI> dialplan show from-trunk-sip-FreecoNet_(vensys)-custom                 [ Context 'from-trunk-sip-FreecoNet_(vensys)-custom' created by 'pbx_config' ]
 
'_.' =>           1. Noop(Fixing DID using information from SIP TO header) [pbx_config]
                   
2. Set(pseudodid=${SIP_HEADER(To)})           [pbx_config]
                   
3. Set(pseudodid=${CUT(pseudodid,@,1)})       [pbx_config]
                   
4. Set(pseudodid=${CUT(pseudodid,:,2)})       [pbx_config]
                   
5. Goto(from-trunk-sip-FreecoNet_(vensys),${pseudodid},1) [pbx_config]

-= 1 extension (5 priorities) in 1 context. =-

Но в результате получаю ту же картину. При записи в файл 'extensionscustom.conf' или изменении "." на "vensys" ничего не меняется:

== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [vensys@from-trunk-sip-FreecoNet_(vensys):1] Set("SIP/FreecoNet_(vensys)-00000001", "GROUP()=OUT_8") in new stack
-- Executing [vensys@from-trunk-sip-FreecoNet_(vensys):2] Goto("SIP/FreecoNet_(vensys)-00000001", "from-trunk,vensys,1") in new stack
-- Goto (from-trunk,vensys,1)
-- Executing [vensys@from-trunk:1] Set("SIP/FreecoNet_(vensys)-00000001", "__FROM_DID=vensys") in new stack
-- Executing [vensys@from-trunk:2] NoOp("SIP/FreecoNet_(vensys)-00000001", "Received an unknown call with DID set to vensys") in new stack
-- Executing [vensys@from-trunk:3] Goto("SIP/FreecoNet_(vensys)-00000001", "s,a2") in new stack
-- Goto (from-trunk,s,2)
-- Executing [s@from-trunk:2] Answer("SIP/FreecoNet_(vensys)-00000001", "") in new stack
-- Executing [s@from-trunk:3] Wait("SIP/FreecoNet_(vensys)-00000001", "2") in new stack
-- Executing [s@from-trunk:4] Playback("SIP/FreecoNet_(vensys)-00000001", "ss-noservice") in new stack

Это глюк у меня или у Elastix? и как с ним бороться?

ссылка удалить спам редактировать

ответил May 19 '12

bsa Gravatar bsa
11 2 2 2

Comments

Перечитайте внимательно мой ответ!!! в extensions_override _freepbx.conf надо написать контекст from-trunk-sip-ИмяТранка, а не from-trunk-sip-ИмяТранка-custom. И туда же добавить второй контекст from-trunk-sip-ИмяТранка-original . Я вам уже написал готовое решение

Olpag (May 20 '12)edit
0

И на этом спасибо. Действительно, только учусь.

Лог таков:

== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [vensys@from-trunk-sip-ИмяТранка:1] Set("SIP/ИмяТранка-00000000", "GROUP()=OUT_8") in new stack
-- Executing [vensys@from-trunk-sip-ИмяТранка:2] Goto("SIP/ИмяТранка-00000000", "from-trunk,vensys,1") in new stack
-- Goto (from-trunk,vensys,1)
-- Executing [vensys@from-trunk:1] Set("SIP/ИмяТранка-00000000", "__FROM_DID=vensys") in new stack
-- Executing [vensys@from-trunk:2] NoOp("SIP/ИмяТранка-00000000", "Received an unknown call with DID set to vensys") in new stack
-- Executing [vensys@from-trunk:3] Goto("SIP/ИмяТранка-00000000", "s,a2") in new stack
-- Goto (from-trunk,s,2)
-- Executing [s@from-trunk:2] Answer("SIP/ИмяТранка-00000000", "") in new stack
-- Executing [s@from-trunk:3] Wait("SIP/ИмяТранка-00000000", "2") in new stack
-- Executing [s@from-trunk:4] Playback("SIP/ИмяТранка-00000000", "ss-noservice") in new stack
-- <SIP/ИмяТранка-00000000> Playing 'ss-noservice.gsm' (language 'en')
ссылка удалить спам редактировать

ответил May 15 '12

bsa Gravatar bsa
11 2 2 2

обновил May 15 '12

Comments

1

КНОПКА КОД ДЛЯ КОГО?

meral (May 15 '12)edit

вместо s,1 вписать vensys,1 и так далее для всего остального.

meral (May 15 '12)edit
0

есть куча вариантов.

самый простой - у вас звонок приходит не в s context как вы написали,а например на номер 123456. что с вашим диалпланом работаь не будет.

вообещ начните с общей книги по астериску. и посмотрите вывод на консоли

asterisk -vvvvr
ссылка удалить спам редактировать

ответил May 15 '12

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/
0

Астериск, непонятно каким образом, делает инклюды... выполните команду:

dialplan show from-trunk-sip-ИмяТранка

Скорее всего у Вас будет такой вывод:

[ Context 'from-trunk-sip-ИмяТранка' created by 'pbx_config' ]
 
'_.' =>           1. Set(GROUP()=OUT_8)                         [pbx_config]
                   
2. Goto(from-trunk,${EXTEN},1)                [pbx_config]
 
Include =>        'from-trunk-sip-ИмяТранка-custom'             [pbx_config]

Поэтому до выполнения вашего кастом контекста дело не дойдет. Ну и судя по логу, у вас _FROMDID=vensys, а не _FROMDID=s

meral Вам уже писал, что нажо заменить s,1 на vensys,1 и т.д. Перепишите контекст [from-trunk-sip-ИмяТранка] в extensions_override _freepbx.conf таким образом:

[from-trunk-sip-ИмяТранка]
exten
=> vensys,1,Noop(Fixing DID using information from SIP TO header)
exten
=> vensys,n,Set(pseudodid=${SIP_HEADER(To)})
exten
=> vensys,n,Set(pseudodid=${CUT(pseudodid,@,1)})
exten
=> vensys,n,Set(pseudodid=${CUT(pseudodid,:,2)})
exten
=> vensys,n,Goto(from-trunk-sip-ИмяТранка-original,${pseudodid},1)

[from-trunk-sip-ИмяТранка-original]
include
=> from-trunk-sip-ИмяТранка-custom
exten
=> _.,1,Set(GROUP()=OUT_8)
exten
=> _.,n,Goto(from-trunk,${EXTEN},1)
ссылка удалить спам редактировать

ответил May 17 '12

Olpag Gravatar Olpag
2024 3 6 30

обновил May 17 '12

0

Оператор прислал инструкцию:

exten => _.,1,Set(TOHDR=${SIP_HEADER(To)})
exten
=> _.,2,Set(SWITCH=${REGEX("222502292" ${TOHDR})})
exten
=> _.,3,GotoIf($["${SWITCH}" = "1"]?from-internal,203,1)

Но вопрос с том, что не обрабатывается custom context. Согласно лога дальше

[from-trunk-sip-ИмяТранка]
include
=> from-trunk-sip-ИмяТранка-custom
exten
=> _.,1,Set(GROUP()=OUT_8)
exten
=> _.,n,Goto(from-trunk,${EXTEN},1)

не следует. Как сделать так, чтобы сначало выполнялся customs context из файла extensions_custom.conf или на крайний случай из extensions_override_elastix.conf. Использую пока стандартную инсталляцию с ISO-диска без каких-либо изменений. До этого использовал и пока использую железяку ZX50, которая внутри имеет Asterisk 1.4 и проблему решил созданием транка на каждый номер. Но это не выход, иметь 25 транков.

ссылка удалить спам редактировать

ответил May 15 '12

bsa Gravatar bsa
11 2 2 2

Comments

REGEX("222502292" ${TOHDR})} - спасибо , посмеялся.

zzuz (May 15 '12)edit

судя по вашим вопросам только нанять когото. ибо совершенно не понятно что происходит.

meral (May 15 '12)edit

Зато автор поразил нас бессмысленнм набором букв в диаплане. Тоже ничего, хоть какое-то на сегодня развлечение)

zzuz (May 15 '12)edit

На специализированные форумы обращаются менее опытные, дабы получить помощь от более опытных. Вижу некоторые отвечающие или не владеют темой, или ищут доп. заработок, или им просто нечего делать. Посмеяться можно на сайте анекдот.ру.

Повторяю вопрос: Как заставить обрабатываться custom context из файла extensions_custom.conf в конфигурации asterisk 1.8.11.0 + freepbx 2.8.1 + elastix 2.3.0 в первую очередь? используется для извлечения DID номера из заголовка, поскольку оператор его не отправляет.

Я настраивал достаточно интегрированных систем, но в основном через GUI-интерфейс с минимальными правками конфиг. файлов. Заранее спасибо за конструктивную помощь.

bsa (May 15 '12)edit

Все звонки попадают во from-trunk , далее в from-pstn-custom , вот там DID и отлавливайте . Пример правильного диаплана с удовольствием приведу , если только Вы мне обьясните что это за строчка exten = _.,2,Set(SWITCH=${REGEX("222502292" ${TOHDR})}) ?

zzuz (May 15 '12)edit

да тут вообещ никто не владеет темой. я вон там вам ответил что надо сделать.

meral (May 15 '12)edit

Спасибо, уже близко. Буду очень благодарен, если поможете с правильным диалпланом. У меня нет сейчас from-pstn-custom. А что за строка, привожу без изменений...

Dla połączeń przychodzących należy wydobyć informacje o numerze z nagłówka "To:"
exten
=&gt; _.,1,Set(TOHDR=${SIP_HEADER(To)})  ///(pobranie nagłówka)
exten
=&gt; _.,2,Set(SWITCH=${REGEX("221234567" ${TOHDR})})  ///(badanie czy połączenie przyszło na numer np. 221234567)
Potem można skoczyć do odpowiedniego kontekstu i extension dla tego numeru:
exten
=&gt; _.,3,GotoIf($["${SWITCH}" = "1"]?kontekst,extension,1) ///(przekazanie do kontekstu, extena na priorytet 1)
Dla połączeń wychodzących trzeba odpowiednio ustawić prezentacje (w panelu musi być "- użyj z bramki -"):
exten
=&gt; _.,1,Set(CALLERID(number)=48221234567)

Но мне больше понравилась инструкция:

<a href="http://www.freepbx.org/support/documentation/howtos/how-to-get-the-did-of-a-sip-trunk-when-the-provider-doesnt-send-it-and-">http://www.freepbx.org/support/documentation/howtos/how-to-get-the-did-of-a-sip-trunk-when-the-provider-doesnt-send-it-and-</a>
bsa (May 16 '12)edit

Описания вашей бредовой строки так и непонятно, тем более скопированной фиг знает откуда. Так что разбирайтесь.

zzuz (May 16 '12)edit

если нет from-pstn-custom , так создайте , если конечно вам ваш язвительный характер позволяет.

zzuz (May 16 '12)edit

Тот же вопрос: 'http://asteriskforum.ru/viewtopic.php?printertopic=1&t=9431&start=0&postdays=0&postorder=asc&vote=viewresult"

Отзовитесь, кто знает ответ.

Или куда вставить custom context, чтобы он обрабатывался перед 'from-trunk'?

bsa (May 16 '12)edit

Путем проб и ошибок добавил в extensions_custom.conf:

[from-pstn-custom]
exten
=&gt; _.,1,NoOp(Fixing DID using information from SIP TO header)
exten
=&gt; _.,n,NoOp(Original CallerID = ${CALLERID(num)})
exten
=&gt; _.,n,NoOp(Original TOHDR = ${TOHDR})
exten
=&gt; _.,n,Set(pseudodid=${SIP_HEADER(To)})
exten
=&gt; _.,n,Set(pseudodid=${CUT(pseudodid,@,1)})
exten
=&gt; _.,n,Set(pseudodid=${CUT(pseudodid,:,2)})
exten
=&gt; _.,n,Set(CALLERID(num)=48${pseudodid:1})
exten
=&gt; _.,n,NoOp(Original CallerID = ${CALLERID(num)})
exten
=&gt; _.,n,Goto(ext-did,${CALLERID(num)},1)

теперь работает. Тестирую

bsa (May 17 '12)edit

о. видите налицо прогрес в понимании астериска и прогрес в оформлении коментариев. если что,то dumpchan екстеншен вам в помощь.

meral (May 18 '12)edit

рано я радовался. При входящих звонках все ОК. Когда набираешь с внутреннего номера любой из своих номеров из списка DID, бедная зацикливается и пашет, как угорелая. Получилось остановить ее только core restart now

bsa (May 19 '12)edit

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку
2 закладки

подписаться на rss ленту новостей

Статистика

Задан: May 14 '12

Просмотрен: 9,922 раз

Обновлен: May 19 '12

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.