AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Что такое SIP Trunk ?

Newbies/FAQ Forum 37 сообщений -
#1

Что такое SIP Trunk ?


Всем привет. Кто может объяснить что такое Sip Trunk и как это работает ?
спасибо.
#2

Многие подразумевают под словом транк канал, в котором может существовать какое-то количество телефонных линий. То есть, пока нет установленного телефонного вызова то и телефонных линий в канале тоже нет. Решение об открытии или неоткрытии временной телефонной линии принимается клиентской АТС, то есть схема выглядит примерно так:
1) вызов приходит на АТС оператора, предоставляющего транк;
2) АТС оператора на уровне сигнализации связывается с клиентской АТС и сообщает ей о том, что есть вызов по конкретному DID;
3) если клиентская АТС принимает решение об открытии временной телефонной линии, то в транке организуется линия для голосового потока между операторской и клиентской АТС.
#3

Это связь по протоколу SIP между двумя серверами, вот и всё. Допустим между твоим астериском и сервером провайдера, предоставляющим выход на межгород.
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
#4

спасибо за разъяснения.

получается что Sip Trunk без DID быть не может ?
т.е. когда есть DID как следствие появляется SIP Trunk ?

Запросили у провайдера информацию по SIP Trunk он сказал что к сожалению обеспечить не может и в то же время предолжил другую услугу куда включены 10 DID номеров. Вот это у меня и не стыкуется.
#5

slech писал(а):

получается что Sip Trunk без DID быть не может ?

Может, но только для исходящих вызовов. Транк в котором нет DID не может принимать вызовы снаружи.

slech писал(а):

Запросили у провайдера информацию по SIP Trunk он сказал что к сожалению обеспечить не может и в то же время предолжил другую услугу куда включены 10 DID номеров. Вот это у меня и не стыкуется.

Видимо это сказал не оператор, а не очень грамотный или мотивированный на номера продавец. Возможно его задача продать Вам максимальное количество DID. Как вариант, задайте ему вопрос: "А Вы можете подать по SIP многоканальный номер?"

P.S. Если нужен Sip Trunk с любым количеством DID от одного очень известного в СНГ оператора, обращайся...
#6

плучается если провайдер продаёт нам услугу SipTrunk то у нас есть возможность совершать исходящие звонки используя его оборудовани.
в самом простом приближении:

1. он делает sip аккаунт
2. мы в астерисе его прописываем
3. все исхдящие в мир направляем через этот акаунт

верно понимаю ?

Added after 1 minutes:

а DID без SIP Trunk быть может ?
#7

slech писал(а):
плучается если провайдер продаёт нам услугу SipTrunk то у нас есть возможность совершать исходящие звонки используя его оборудовани.
в самом простом приближении:

1. он делает sip аккаунт
2. мы в астерисе его прописываем
3. все исхдящие в мир направляем через этот акаунт

верно понимаю ?

Верно. Только слово аккаунт здесь стоит понимать так же как и слово транк Smile

slech писал(а):

Added after 1 minutes:

а DID без SIP Trunk быть может ?


Конечно может, DID может подаваться в потоке ISDN PRI, по линиям ISDN BRI, по-аналоговым линиям наконец Smile
#8

Цитата:

а DID без SIP Trunk быть может ?

Конечно может, DID может подаваться в потоке ISDN PRI, по линиям ISDN BRI, по-аналоговым линиям наконец Smile


Понемногу начинаю понимать логику. спасибо.

Значит SIP Trunk это когда

1. DID приходит к нам по VoIP
2. Когда DID нету но есть возможность звонить наружу посредством провайдера. Т.е. есть канал IP до провайдера черз который будет идти SIP.
#9

slech писал(а):
1. DID приходит к нам по VoIP
2. Когда DID нету но есть возможность звонить наружу посредством провайдера. Т.е. есть канал IP до провайдера черз который будет идти SIP.


Не совсем так, т.е. совсем не так Smile
Одна линия - это не транк, а (грубо) группа линий, которая физически подаётся одним разъёмом - транк.
#10

2-3 номера DID по VoIP - уже Sip Trunk. Прослеживается аналогия с транком для Vlan. верно ?
получается если мы хотим телефоный номер у провайдера на 10 входящих линий это уже SIP Trunk ?
#11

Неправильно DID вообще вмешивать в понятие транка. DID - это просто кобинация цифр и не более, транк - это физический канал.

DID - это номер дома, а транк - это сам дом. Даже если у дома нет номера, там всё-равно можно жить.
#12

мдя, сори за назойливсть. сдлабенько догоняю. могу ещё кучу глупых ответных вопросов назадавать. лучше посижу обмозгую.
спасибо за терпение Smile
#13

simple писал(а):
DID - это номер дома, а транк - это сам дом. Даже если у дома нет номера, там всё-равно можно жить.

это пять!! Good
#14

Цитата:
а DID без SIP Trunk быть может ?

- Доктор, а бывает эякуляция без эррекции?
- Ну, в некоторох случаях, при расстройствах там, хорошо описаное и изученное явление..
- Доктор, а бывает эррекция без эякуляции?
- Конечно!, очень хорошо известный случай утренней эррекции, или, к примеру, как результат возбуждения под воздействием многих факторов. А почему вы спрашиваетие в конце концов? У вас проблемы?
- Да нет, просто слова красивые - эякуляция, эррекция...

_________
Это - шесть.
#15

Так... Полдня поиска информации по форуму - и всё впустую, если не считать анекдота. Поэтому задам вопрос прямо:
Как создать 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)

Подскажите, что нужно для транка?
#16

Margulis,
нужно понимание и терпение.
А не понимание (которое Вы демонстрируете) и нетерпение не нужны, и даже вредны.
Очень настойчиво рекомендую почитать или книгу, или примеры, или 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)
только чуть другими словами.
#17

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})

_________________
Человек мира. RHCE + clustering.
#18

Ded писал(а):
Margulis,
нужно понимание и терпение.


А полдня, убитые на простейший вопрос - это не терпение?? Была бы дока толковая - такого б не было. И пониманию при таких доках взяться неоткуда.
#19

Это терпение, но и непонимание.
Ну ведь хватает же доков?
#20

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" закончился пшиком. Smile Существенное подспорье - это переводная книга по Астериску. Я не буду утверждать, что я прям всю её прошерстил от корки до корки, но, как говорится, "ознакомился". Тоже там про транки ничего не попалось...


Последний раз редактировалось: Margulis (Чт Мар 19, 2009 15:55)
#21

Дед умеет всех корректно направлять в нужную сторону... гораздо лучше, чем я. За что ему огромное спасибо. Bow
_________________
Человек мира. RHCE + clustering.
#22

Присоединяюсь к благодарности, только я как раз с той стороны и пришёл, куда он посылает. Не нашёл ответа и пришёл. Чё б я тут тусовался, если б нашёл доку, в которой всё доходчиво написано?
#24

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], чтоб не спорить с Дедом и не усугублять тем самым своё положение брошенного котёнка. Smile
#25

Чтобы не путаться в понятиях (мы же по понятиям?), очень не рекомендую использовать название контекста такое же как экстеншн (номер).
Это не обработчик суётся в контекст [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],
#26

Ded писал(а):
там нет "79031234567", потому что Вы его перетащили в контекст [default],


Именно так. А до перетаскивания почему этот экстеншин не срабатывал? Ведь всё было на своих местах: в файле sip.conf было описание канала "123", в этом описании указывалось, что звонок должен обрабатываться в контексте [123], в файле extensions.conf был такой контекст и в этом контексте был экстеншин "79031234567". Я понимаю, что чего-то не понимаю, но бьюсь башкой об эту стенку и никакого эффекта, мне бы хоть щёлочку в этой стенке найти...
#27

Нет, не на своих местах. Вот как было по вашему описанию:
Цитата:
в 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 и выкидывало в дефолт.
#28

Ded писал(а):
Это не логично, неправильно Dial(SIP/trunk_1)
При такой строке в контексте 123 ничего не могла произойти, * пытался создать это в контексте Local и выкидывало в дефолт.


Вместо Dial() другую функцию надо пользовать?
#29

это core show application Dial почитать
_________________
Человек мира. RHCE + clustering.
#30

Ок, спасибо, иду читать. )

Почитал. Противоречий не нашёл... Туман, туман...
#31

Нет, ребяты, не надо мутить воду, с компоновкой у меня всё в порядке. Я сейчас вместо того, чтоб отдавать звонок в транк, нацарапал следующее:
exten => 79031234567,1,Answer
exten => 79031234567,2,Playback(tt-weasels)
exten => 79031234567,3,Hangup

и Астериск что-то мне в трубку прогавкал. Это значит, что я правильно описал канал в sip.conf, правильно назначил для него контекст [123], и в целом логика моя была правильная. А в деталях - я что-то неправильно делаю с транком или что-то недоделываю. Давайте, джентельмены, придумаем уже, как правильно орагнизовать транк? Или, может быть, мне не нужен транк, и я просто неправильно понимаю этот термин?
#32

Ded писал(а):
Это не логично, неправильно Dial(SIP/trunk_1)
При такой строке в контексте 123 ничего не могла произойти, * пытался создать это в контексте Local и выкидывало в дефолт.
Товарищь Маргулис, пока вы не подумаете головой над core show application Dial, слова Деда вы не поймёте и транк у вас не заработает.
_________________
Человек мира. RHCE + clustering.
#33

Ромик, вы с Дедом уже достаточно туману напустили. Давайте уже начнём его разгребать потихоньку? Я не спрашиваю, о чём мне почитать, я спрашиваю: что именно я неправильно понял в том, что уже прочитал?
Берём команду 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).
Я уже стою на коленях и умоляю: покажите мне то место, в котором я ошибся?
#34

Margulis писал(а):
Я уже стою на коленях и умоляю: покажите мне то место, в котором я ошибся?


Цитата:
Что легче сказать: прощаются тебе грехи твои, или сказать: встань и ходи?
Евангелие от Луки 5:23

http://asterisk.ru/knowledgebase/Asterisk+cmd+Dial
#35

Ded писал(а):

http://asterisk.ru/knowledgebase/Asterisk+cmd+Dial


Very Happy Дед, огромное спасибо за ссылку. Я уже три раза эту статью читал, но, тем не менее, клятвенно обещаю, что прочитаю ещё раз! Very Happy А то вдруг я в предыдущие разы прочитал невнимательно, а сейчас вдруг меня осенит...
#36

И я клянусь, что по 4-5 раз читаю, и понять не могу, некоторые вещи начал понимать спустя год (!) общения с Астериском.
Не надо усложнять. Понимание лучше вести от простого к сложному. Запомни простую формулу команды Dial
Dial(Технология/пир/экстеншн)
всё остальное - вариации.
#37

Хрррен его знает... Никаких зацепок. Может быть дебаг какой-нибудь включить?

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})

в рассчёте на то, что может быть надо сначала по локальному каналу перекинуть звонок внутри Астериска...
Короче, мне уже всякий бред в голову лезет, с документацией почти никак не связанный, основанный на отчаянии и на "авось".