Что такое SIP Trunk ?
спасибо.
1) вызов приходит на АТС оператора, предоставляющего транк;
2) АТС оператора на уровне сигнализации связывается с клиентской АТС и сообщает ей о том, что есть вызов по конкретному DID;
3) если клиентская АТС принимает решение об открытии временной телефонной линии, то в транке организуется линия для голосового потока между операторской и клиентской АТС.
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
получается что Sip Trunk без DID быть не может ?
т.е. когда есть DID как следствие появляется SIP Trunk ?
Запросили у провайдера информацию по SIP Trunk он сказал что к сожалению обеспечить не может и в то же время предолжил другую услугу куда включены 10 DID номеров. Вот это у меня и не стыкуется.
| slech писал(а): |
| получается что Sip Trunk без DID быть не может ? |
Может, но только для исходящих вызовов. Транк в котором нет DID не может принимать вызовы снаружи.
| slech писал(а): |
| Запросили у провайдера информацию по SIP Trunk он сказал что к сожалению обеспечить не может и в то же время предолжил другую услугу куда включены 10 DID номеров. Вот это у меня и не стыкуется. |
Видимо это сказал не оператор, а не очень грамотный или мотивированный на номера продавец. Возможно его задача продать Вам максимальное количество DID. Как вариант, задайте ему вопрос: "А Вы можете подать по SIP многоканальный номер?"
P.S. Если нужен Sip Trunk с любым количеством DID от одного очень известного в СНГ оператора, обращайся...
в самом простом приближении:
1. он делает sip аккаунт
2. мы в астерисе его прописываем
3. все исхдящие в мир направляем через этот акаунт
верно понимаю ?
Added after 1 minutes:
а DID без SIP Trunk быть может ?
| slech писал(а): |
| плучается если провайдер продаёт нам услугу SipTrunk то у нас есть возможность совершать исходящие звонки используя его оборудовани. в самом простом приближении: 1. он делает sip аккаунт 2. мы в астерисе его прописываем 3. все исхдящие в мир направляем через этот акаунт верно понимаю ? |
Верно. Только слово аккаунт здесь стоит понимать так же как и слово транк
| slech писал(а): |
| Added after 1 minutes: а DID без SIP Trunk быть может ? |
Конечно может, DID может подаваться в потоке ISDN PRI, по линиям ISDN BRI, по-аналоговым линиям наконец
| Цитата: |
| а DID без SIP Trunk быть может ? Конечно может, DID может подаваться в потоке ISDN PRI, по линиям ISDN BRI, по-аналоговым линиям наконец |
Понемногу начинаю понимать логику. спасибо.
Значит SIP Trunk это когда
1. DID приходит к нам по VoIP
2. Когда DID нету но есть возможность звонить наружу посредством провайдера. Т.е. есть канал IP до провайдера черз который будет идти SIP.
| slech писал(а): |
| 1. DID приходит к нам по VoIP 2. Когда DID нету но есть возможность звонить наружу посредством провайдера. Т.е. есть канал IP до провайдера черз который будет идти SIP. |
Не совсем так, т.е. совсем не так
Одна линия - это не транк, а (грубо) группа линий, которая физически подаётся одним разъёмом - транк.
получается если мы хотим телефоный номер у провайдера на 10 входящих линий это уже SIP Trunk ?
DID - это номер дома, а транк - это сам дом. Даже если у дома нет номера, там всё-равно можно жить.
спасибо за терпение
| simple писал(а): |
| DID - это номер дома, а транк - это сам дом. Даже если у дома нет номера, там всё-равно можно жить. |
это пять!!
| Цитата: |
| а DID без SIP Trunk быть может ? |
- Доктор, а бывает эякуляция без эррекции?
- Ну, в некоторох случаях, при расстройствах там, хорошо описаное и изученное явление..
- Доктор, а бывает эррекция без эякуляции?
- Конечно!, очень хорошо известный случай утренней эррекции, или, к примеру, как результат возбуждения под воздействием многих факторов. А почему вы спрашиваетие в конце концов? У вас проблемы?
- Да нет, просто слова красивые - эякуляция, эррекция...
_________
Это - шесть.
Как создать SIP-trunk?
Где-то прочитал, что в принципе, вот этого достаточно (внести в sip.conf), чтоб пошли звонки:
[trunk_1]
type=friend
host=11.22.33.44
Ну так, в принципе и сделал. Логика какая? На первый взгляд, тут описывается некое SIP-соединение с неким хостом в режиме двустороннего обмена, без аутентификации. Есть логика? Есть.
Дальше идём в extensions.conf и рисуем там:
[123]
exten => 79031234567,1,Dial(SIP/trunk_1)
Что я хочу этим сказать? Я хочу сказать, что если с клиента 123 приходит вызов на номер 79031234567, этот вызов вдуть в транк SIP/trunk_1. Логично? Логично.
В файле sip.conf есть также раздел [123]:
[123]
type=friend
username=123
secret=456
nat=no
host=dynamic
context=123
Что я тут подразумевал? Подразумевается, что некий SIP-фон может приконнектиться с логином 123 и паролем 456 с любого айпишника для взаимного обмена звонками. При этом звонки с этого телефона обрабатываются по правилам из контекста [123], файл extensions.conf. Это ж не полная лажа? Кажется, что нет.
Итак, всё, вроде бы логично, а нихрена не работает!! Пишет вот что:
[2009-03-19 17:09:23.694] NOTICE[2381]: chan_local.c:648 local_alloc: No such extension/context 79031234567@default creating local channel
[2009-03-19 17:09:23.695] NOTICE[2381]: app_dial.c:515 do_forward: Unable to create local channel for call forward to 'Local/79031234567@default' (cause = 0)
Подскажите, что нужно для транка?
нужно понимание и терпение.
А не понимание (которое Вы демонстрируете) и нетерпение не нужны, и даже вредны.
Очень настойчиво рекомендую почитать или книгу, или примеры, или http://asterisk.ru/knowledgebase/Asterisk+introduction и далее по списку.
Потому что вопросы возникают, а примеры помогаютс их пробовать у себя тут же. Иначе в слове 3 буквы и 4 ошибки.
в extensions.conf и не рисуем там:
[123]
exten => 79031234567,1,Dial(SIP/trunk_1)
а добавляем эту строку
exten => 79031234567,1,Dial(SIP/trunk_1/${EXTEN})
в контексте [default] а не придумываем свой новый контекст [123] в который ничего не попадает.
То же самое вам сообщает ваш Астериск
Unable to create local channel for call forward to 'Local/79031234567@default' (cause = 0)
только чуть другими словами.
[trunk]
type=friend
host=123.456.789.1
[client]
username=client
secret=123
host=dynamic
context=123-context
extensions.conf
[123-context]
exten => 79031234567,1,Dial(SIP/trunk_1/${EXTEN})
_________________
Человек мира. RHCE + clustering.
| Ded писал(а): |
| Margulis, нужно понимание и терпение. |
А полдня, убитые на простейший вопрос - это не терпение?? Была бы дока толковая - такого б не было. И пониманию при таких доках взяться неоткуда.
Ну ведь хватает же доков?
| Romik писал(а): |
| sip.conf [trunk] type=friend host=123.456.789.1 [client] username=client secret=123 host=dynamic context=123-context extensions.conf [123-context] exten => 79031234567,1,Dial(SIP/trunk_1/${EXTEN}) |
Я, вроде, что-то похожее и изобразил. Отличие только в "${EXTEN}". Честно говоря, это самое "${EXTEN}" у меня было. Просто я не смог бы внятно объяснить что это и для чего нужно, и нужно ли вообще, поскольку я это тоже нашёл где-то на форуме, а не дошёл своим умом.
Added after 2 minutes:
| Ded писал(а): |
| Это терпение, но и непонимание. Ну ведь хватает же доков? |
В принципе, доков тьма. Поэтому вдвойне удивительно, что поиск по словам "транк" и "trunk" закончился пшиком.
Последний раз редактировалось: Margulis (Чт Мар 19, 2009 15:55)

_________________
Человек мира. RHCE + clustering.
идите в библиотеку http://asteriskforum.ru/viewforum.php?f=7
_________________
Человек мира. RHCE + clustering.
| Ded писал(а): |
| не придумываем свой новый контекст [123] в который ничего не попадает. |
Почему не попадает? Вот в чём вопрос. Вы отсылаете меня к книге и это, наверное, справедливо, я бы сам так сделал. Что же мы видим в книге? Примерно следующее: контекст - это точка диалплана, с которой начинается обработка соединения, выполняемого через соответствующий канал. В нашем случае соответствующий канал именуется "123". Какого фига обработка звонка не попадает в соостветствующий контекст? Я неправильно понял? Или надо читать между строк?
Added after 18 minutes:
| Ded писал(а): |
| в extensions.conf и не рисуем там: [123] exten => 79031234567,1,Dial(SIP/trunk_1) а добавляем эту строку exten => 79031234567,1,Dial(SIP/trunk_1/${EXTEN}) в контексте [default] а не придумываем свой новый контекст [123] в который ничего не попадает. |
Уже совершенно не понимая, почему именно так надо и почему не происходит то, что должно бы происходить, если верить книге, я, тем не менее, сделал так и получил:
[2009-03-19 18:41:48.724] NOTICE[2361]: chan_sip.c:17171 handle_request_invite: Call from '123' to extension '79031234567' rejected because extension not found.
И вот как раз этот ответ мне понятен: обработчик суётся в контекст [123] и не находит там экстеншина "79031234567", потому что я его перетащил в контекст [default], чтоб не спорить с Дедом и не усугублять тем самым своё положение брошенного котёнка.
Это не обработчик суётся в контекст [123], а Call from '123' - то есть вызов идёт от номера 123. Он исполняется в той секции контекста, которая определена ему в описании.
Если Вы начали следовать конфигу Ромика, то у вас
sip.conf
[trunk]
type=friend
host=123.456.789.1
[client]
username=client
secret=123
host=dynamic
context=123-context
стало быть звонок от 123 - Call from '123' исполняется в context=123-context. А там нет "79031234567", потому что Вы его перетащили в контекст [default],
| Ded писал(а): |
| там нет "79031234567", потому что Вы его перетащили в контекст [default], |
Именно так. А до перетаскивания почему этот экстеншин не срабатывал? Ведь всё было на своих местах: в файле sip.conf было описание канала "123", в этом описании указывалось, что звонок должен обрабатываться в контексте [123], в файле extensions.conf был такой контекст и в этом контексте был экстеншин "79031234567". Я понимаю, что чего-то не понимаю, но бьюсь башкой об эту стенку и никакого эффекта, мне бы хоть щёлочку в этой стенке найти...
| Цитата: |
| в extensions.conf и рисуем там: [123] exten => 79031234567,1,Dial(SIP/trunk_1) Что я хочу этим сказать? Я хочу сказать, что если с клиента 123 приходит вызов на номер 79031234567, этот вызов вдуть в транк SIP/trunk_1. Логично? Логично. В файле sip.conf есть также раздел [123]: [123] type=friend username=123 secret=456 nat=no host=dynamic context=123 При этом звонки с этого телефона обрабатываются по правилам из контекста [123], файл extensions.conf. Это ж не полная лажа? Кажется, что нет. Итак, всё, вроде бы логично, а нихрена не работает!! Пишет вот что: [2009-03-19 17:09:23.694] NOTICE[2381]: chan_local.c:648 local_alloc: No such extension/context 79031234567@default creating local channel [2009-03-19 17:09:23.695] NOTICE[2381]: app_dial.c:515 do_forward: Unable to create local channel for call forward to 'Local/79031234567@default' (cause = 0) |
Это не логично, неправильно Dial(SIP/trunk_1)
При такой строке в контексте 123 ничего не могла произойти, * пытался создать это в контексте Local и выкидывало в дефолт.
| Ded писал(а): |
| Это не логично, неправильно Dial(SIP/trunk_1) При такой строке в контексте 123 ничего не могла произойти, * пытался создать это в контексте Local и выкидывало в дефолт. |
Вместо Dial() другую функцию надо пользовать?
_________________
Человек мира. RHCE + clustering.
Почитал. Противоречий не нашёл... Туман, туман...
exten => 79031234567,1,Answer
exten => 79031234567,2,Playback(tt-weasels)
exten => 79031234567,3,Hangup
и Астериск что-то мне в трубку прогавкал. Это значит, что я правильно описал канал в sip.conf, правильно назначил для него контекст [123], и в целом логика моя была правильная. А в деталях - я что-то неправильно делаю с транком или что-то недоделываю. Давайте, джентельмены, придумаем уже, как правильно орагнизовать транк? Или, может быть, мне не нужен транк, и я просто неправильно понимаю этот термин?
| Ded писал(а): |
| Это не логично, неправильно Dial(SIP/trunk_1) При такой строке в контексте 123 ничего не могла произойти, * пытался создать это в контексте Local и выкидывало в дефолт. |
_________________
Человек мира. RHCE + clustering.
Берём команду Dial. Что она делает? Буквально следующее: пытается установить новое исходящее соединение и связать его с текущим каналом (по которому поступил вызов). По какому каналу поступает вызов в моём случае? По каналу SIP/123. Вызовы, пришедшие с канала SIP/123, обрабатываются в контексте [123]. В этом контексте присутствует команда Dial:
Dial(type/identifier,timeout,options,URL)
Таймаут, опции и URL - поля необязательные, как я понял, их опускаем.
Для каналов SIP, параметр type всегда имеет значение SIP.
Параметр identifier может состоять из следующих трех частей:
[ exten@]peer [ :port]
peer - имя вызываемого клиента, который описан в файле sip.conf. Конкретно у меня в файле sip.conf присутствует trunk_1.
port - используемый UDP порт. Если не указан, Asterisk будет использовать стандартный SIP-порт = 5060. Мне подходит 5060, поэтому данный параметр опускаем.
exten: если задан этот параметр, тогда Asterisk будет запрашивать удаленный сервер соединение с екстеншином exten. Мне не надо никого там запрашивать, поэтому опускаем.
В итоге получаем следующий вид команды Dial:
Dial(SIP/trunk_1).
Я уже стою на коленях и умоляю: покажите мне то место, в котором я ошибся?
| Margulis писал(а): |
| Я уже стою на коленях и умоляю: покажите мне то место, в котором я ошибся? |
| Цитата: |
| Что легче сказать: прощаются тебе грехи твои, или сказать: встань и ходи? |
http://asterisk.ru/knowledgebase/Asterisk+cmd+Dial
| Ded писал(а): |
| http://asterisk.ru/knowledgebase/Asterisk+cmd+Dial |
Не надо усложнять. Понимание лучше вести от простого к сложному. Запомни простую формулу команды Dial
Dial(Технология/пир/экстеншн)
всё остальное - вариации.
Added after 25 minutes:
| Ded писал(а): |
| Запомни простую формулу команды Dial Dial(Технология/пир/экстеншн) всё остальное - вариации. |
Пробовал я и так. Я уже как только не пробовал. Я уже в отчаянии начал лепить как попало, безо всякого смысла. Даже так пробовал:
[123]
exten => 79031234567,1,Dial(local/${EXTEN}@trunk_1)
[trunk_1]
exten => 79031234567,1,Dial(SIP/trunk_1/${EXTEN})
в рассчёте на то, что может быть надо сначала по локальному каналу перекинуть звонок внутри Астериска...
Короче, мне уже всякий бред в голову лезет, с документацией почти никак не связанный, основанный на отчаянии и на "авось".