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

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)

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

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

спросил 2012-02-03 19:02:33 +0400

dragomagic Gravatar dragomagic
1 1 1

обновил 2012-02-03 19:16:56 +0400

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

5 Ответов

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]

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

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

ответил 2012-02-05 07:56:44 +0400

varnar Gravatar varnar
11 3

Comments

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

meral ( 2012-02-05 17:24:50 +0400 )редактировать

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

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

varnar ( 2012-02-06 23:59:21 +0400 )редактировать

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

meral ( 2012-02-07 02:20:42 +0400 )редактировать
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()

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

ответил 2012-02-04 04:58:52 +0400

bolshoy_plohish Gravatar bolshoy_plohish
1388 25 20 38

Comments

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

meral ( 2012-02-04 15:28:25 +0400 )редактировать

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

bolshoy_plohish ( 2012-02-05 06:29:47 +0400 )редактировать

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

meral ( 2012-02-06 03:10:03 +0400 )редактировать

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

meral ( 2012-02-06 03:10:51 +0400 )редактировать

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

meral ( 2012-02-06 18:37:57 +0400 )редактировать
2

я делаю так

[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()
ссылка удалить спам редактировать

ответил 2012-02-03 23:06:46 +0400

godlike Gravatar godlike flag of Ukraine
814 92 24 62
0

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

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

ответил 2012-02-03 20:19:49 +0400

eyt5297 Gravatar eyt5297
61 12 1 10
https://t.me/chan_asteris...
1

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

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

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

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

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

ответил 2012-02-03 19:08:58 +0400

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

Ваш ответ

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 ленту новостей

Статистика

Задан: 2012-02-03 19:02:33 +0400

Просмотрен: 2,512 раз

Обновлен: Aug 31 '14

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