LINUX.ORG.RU
ФорумAdmin

asterisk. Separate sip provider in/out contexts


0

0

Всем привет.

# grep -iA1 'tip 2' sip.conf
; Tip 2: Use separate type=peer and type=user sections for SIP providers
; (instead of type=friend) if you have calls in both directions

Кому-нибудь удавалось это реализовать в более-менее вменяемом виде?
Единственно, что пока нагуглилось после того, как выяснилось, что просто так это не поднимается:
http://asterisk-support.ru/forum/topics/1856/?navBatchStart=1775

Выглядит очень неприглядно :-(
Астериск из двух пиров выбирает автоматом второй в sip.conf... Только в определенном порядке описания двух пиров оно работает с помощью уличной магии и парсера конфигов астериска. Такая географическая зависимость меня вводит в глубокую фрустрацию. Где уж там до _рабочего_ примера с одновременными type=user и type=peer. Чуваку, который на osdir спросил про разделение контекстов, предложили в итоге type=friend o_O





★★★

ну а чем тебя type=friend то не устраивает?

dial(sip/добавочный@другойконтекст)
и все дела как бы

что нужно-то?

dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

Дела-то вроде как-бы и все, пока используется какая-то стандартная конфигурация. Видимость екстеншенов ограничивается контекстом, указанным в sip.conf. Ты туда-то не пихаешь внутренние екстеншены? Теперь представим, что звонит клиент. Его запрос трансферится на мобильный сотрудника. Через тот самый Dial.... А теперь сотруднику нужно сделать трансфер звонка на какой-то внутренний экстеншен. Что ему на это астериск скажет, который будет смотреть context из sip.conf? Куда он его пошлет?

Единстсвенное, что я пока вижу из альтернатив разделения контекстов -- использовать какой-нить экстеншн типа

451/921XXXXXXX,1,1,Dial... Но это как крайний случай, если не удастья реализовать нормально то, что в документации заявлено как релизуемое.

Valmont ★★★
() автор топика
Ответ на: комментарий от Valmont

Re^2: asterisk. Separate sip provider in/out contexts

> Если кто-то еще столкнется с этим. Попробуйте TRANSFER_CONTEXT.

Дайте уж пример нормальный ;)

APM
()
Ответ на: комментарий от Valmont

>Видимость екстеншенов ограничивается контекстом, указанным в sip.conf.

можно позвонить из любого контекста в любой, смотри описание приложения Dial

если контекст не задан используется текущий

dimon555 ★★★★★
()
Ответ на: комментарий от jellyfish

Ну-ну :-) Я дал необходимый и достаточный ответ на вопрос, который у меня самого возник. Но для ленивых пример:

exten => 7XXXXXXXXXX,1,Set(TRANSFER_CONTEXT=test)
exten => 7XXXXXXXXXX,n,Set(__DYNAMIC_FEATURES=automon#blindxfer#atxfer#parkcall)
exten => 7XXXXXXXXXX,n,NoOp(CONTEXT=${CONTEXT},TRANSFER_CONTEXT=${TRANSFER_CONTEXT},FEAT
URES=${DYNAMIC_FEATURES}
exten => 7XXXXXXXXXX,n,Dial(SIP/sipnet/7XXXXXXXXXX,,TtKkWwS(1800))
exten => 7XXXXXXXXXX,n,Hangup()

7XXXXXXXXXX - должен быть реальный номер, но проще оформить макросом.

Valmont ★★★
() автор топика
Ответ на: комментарий от dimon555

Блин. Еще раз. Речь идет о _трансфере_. Ну какой тут Dial с Goto? Если у вы за спиной, конечно, не прячете каких-то специфических хуков на трансфер через что-то.

Valmont ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.