2 trunk'a не разделяются по context'ам

мне понравился этот пост (щелкните снова, чтобы отменить)
0
мне не понравился этот пост (нажмите еще раз для отмены)

Есть 2 номера у одного провайдера, заведенные на 1 Asterisk.

[443613371]
  host=sip.intertelecom.ua
  username=443613371
  secret=***
  trunkname=intertelecom.ua
  context=DID_443613371
  hasexten=no
  hasiax=no
  hassip=yes
  registeriax=no
  registersip=yes
  trunkstyle=voip
  fromdomain=sip.intertelecom.ua
  fromuser=443613371
  authuser=443613371
  insecure=port,invite
  disallow=all
  allow=ulaw,alaw,gsm,g726

[443836313]
  host=sip.intertelecom.ua
  username=443836313
  secret=***
  trunkname=itelecom313
  context=DID_443836313
  hasexten=no
  hasiax=no
  hassip=yes
  registeriax=no
  registersip=yes
  trunkstyle=voip
  insecure=port,invite
  fromdomain=sip.intertelecom.ua
  authuser=443836313
  fromuser=443836313
  disallow=all
  allow=ulaw,alaw,gsm

Для каждого заведен свой contex, но при звонке на любой номер срабатывает только 1 из указанных contex'ов.

 -- Executing [443836313@DID_443836313:1] Goto("SIP/443836313-00000016", "default,6005,1") in new stack
    -- Goto (default,6005,1)


 -- Executing [443613371@DID_443836313:1] Goto("SIP/443836313-00000014", "default,6005,1") in new stack
-- Goto (default,6005,1)

Как правильно разделить вызовы, в зависимости от набранного номера? Кроме как подымать под каждый номер отдельный сервер.

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

спросил Feb 03

dragomagic Gravatar

dragomagic


1

обновил Feb 03

zzuz Gravatar

zzuz

2562 2 43
http://line24.ru/
добавить комментарий
мне нравится этот ответ (нажмите еще раз для отмены)
0
мне не нравится этот ответ (нажмите еще раз для отмены)

Правильнее использовать SIP_HEADER(TO)

[incoming]
exten => _.,1,Set(DestN=${SIP_HEADER(TO):5})
exten => _.,n,Set(DestN=$CUT(DestN,@,1)})
exten => _.,n,Goto(${DestN},s,1)
#exten => _.,n,GotoIf($["DestN" = "443613371"]?context1,s,1)
#exten => _.,n,GotoIf($["DestN" = "443836313"]?context2,s,1)

[443613371]
exten => s,1,Dial()

[context1]

ну и так далее, смотря на Ваше усмотрение

постоянная ссылка | редактировать | спам

ответил Feb 05

varnar Gravatar

varnar


1 2

а почему правильное? нет, не надо меня обвинять в том что я злой. мне инетерсно из каких соображений вы этопишете? в каких случаях поле to будет а extension - нет? я вот читал/писал chan_sip.c и такого както не припомню.

meral (Feb 05)редактировать

Я сам пользуюсь DID-ом (freephoneline.ca) и всегда получал в поле TO как раз номер на который звонили клиенты. Да и на других серверах тоже, показывает номер(имя) на который пришел звонок из вне

Но только для SIP каналов

varnar (Feb 06)редактировать

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

meral (Feb 07)редактировать
добавить комментарий
мне нравится этот ответ (нажмите еще раз для отмены)
0
мне не нравится этот ответ (нажмите еще раз для отмены)

Еще можно по имени канала маршрутизацию сделать.

[incoming]
exten => _.,1,GotoIf($["${CHANNEL:4:-9}" = "443613371"]?context1,s,1)
exten => _.,n,GotoIf($["${CHANNEL:4:-9}" = "443836313"]?context2,s,1)

[context1] exten => s,1,Dial()

[context2] exten => s,1,Dial()

постоянная ссылка | редактировать | спам

ответил Feb 04

bolshoy_plohish Gravatar

bolshoy_plohish


319 3 12

интересно. а чем это будет лучше чем по destination? и вообще почему вы решили что на всех системах в имени канал будет номер? у меня например нигде он так не светится.

meral (Feb 04)редактировать

Вы прочитали, что я написал?! Там может и не номер быть. Все зависит, какое вы каналу имя присвоили.

bolshoy_plohish (Feb 05)редактировать

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

meral (Feb 06)редактировать

давайте уточним вопрос. как с помощью того что вы описали разделить траффик иддущий с адреса 192.168.0.1 и 192.168.0.1 на один и тот же номер s?

meral (Feb 06)редактировать

тоесть у вас нет ответа на мои вопросы? вы просто написали не читая вопроса и думаете что это нормально?

meral (Feb 06)редактировать
добавить комментарий
мне нравится этот ответ (нажмите еще раз для отмены)
1
мне не нравится этот ответ (нажмите еще раз для отмены)

я делаю так

[incoming]
exten => 1111111111,1,Goto(context1,s,1)
exten => 2222222222,1,Goto(context2,s,1)

[context1]
exten => s,1,Dial()

[context2]
exten => s,1,Dial()
постоянная ссылка | редактировать | спам

ответил Feb 03

godlike Gravatar

godlike


574 8 3 18

добавить комментарий
мне нравится этот ответ (нажмите еще раз для отмены)
0
мне не нравится этот ответ (нажмите еще раз для отмены)

надо определить оба этих номера в один контекст (in_intertelecom например), а в нем обрабатывать их с помощью плана нумерации:

[in_intertelecom]
exten => 443613371,1,Dial(SIP/100)
exten => 443836313,1,Dial(SIP/101)
постоянная ссылка | редактировать | спам

ответил Feb 03

eyt5297 Gravatar

eyt5297


25 4

добавить комментарий
мне нравится этот ответ (нажмите еще раз для отмены)
1
мне не нравится этот ответ (нажмите еще раз для отмены)

астериск определяет транк по паре адрес+порт.

тоесть в вашем случае будет всегда ОДИН выбираться. тото который первый в конфиге.

поищите другой вариант разделения, например по номерам.

да, точно ничего сделать с этим нельзя. это очень глубоко в sip канале заложено.

постоянная ссылка | редактировать | спам

ответил Feb 03

meral Gravatar

meral

6286 1 11 98
http://pro-sip.net/
добавить комментарий

Ваш ответ

Вы можете ответить анонимно, а затем войти

[скрыть предварительный просмотр]

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

1 закладка

subsribe to rss feed

Question tags:

Статистика

вопрос был задан: Feb 03

вопрос был просмотрен: 151 раз

последнее обновление: Feb 05

похожие вопросы:

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