Помогите совершить звонок от несуществующего абонента (AMI + Originate)
Откуда: Харьков, Украина
Сообщений: 10
|
Помогите совершить звонок от несуществующего абонента (AMI + Originate)
Уже неделю разбираюсь с астериском 1.6, asterisk.ru и voip-info.org стали "настольными книгами" :) но от обилия терминов и настроек сознание кипит.
Не прошу решить за меня задачу, прошу лишь натолкнуть на путь истинный и указать где я туплю.
Задача: необходимо совершать исходящие звоноки по двум внешним sip каналам, дожидаться, когда абонент поднимет трубку, проигрывать файл и класть трубку.
Инструменты:
AMI + Originate
sip.conf
[general]
context=default
allowoverlap=no
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
srvlookup=yes
register => KHRV_P2_577841900.141:xxxxxxxxxx@vg3.vegatele.com
register => KHRV_P2_577841900.142:xxxxxxxxxx@vg3.vegatele.com
[cti]
type=peer
context=default
callerid=CTI <7841900>
host=192.168.80.129
nat=no
directmedia=no
dtmfmode=info
call-limit=1
disallow=all
allow=ulaw
allow=g729
extensions.conf
[general]
static=yes
writeprotect=no
clearglobalvars=no
[demo]
exten => s,1,Answer
exten => s,1,Wait(1)
exten => s,1,Palayback(hello-world,skip)
exten => s,1,Hangup
[default]
include => demo
Команда:
Action: Originate
Channel: SIP/cti
Context: default
Prority: 1
Exten: 3386496
Ответ сервера:
Channel not specified
Конфиги были получены из стандартных путем удаления каментов и нехитрых изменений.
Прежде всего волнует вопрос что я не так делаю и как правильно написать (желательно пример кода)
Побочный эффект: при входящем звонке на 7841900 астериск действительно сообщает мне "Hello world" но в CLI все команды Answer Wait и т.д. повторяються 2 раза. С чем это связано?
И наконец, что в конфигах лишнее, а чего не хватает?
Заранее благодарю!
|
Откуда: Уфа
Сообщений: 5856
|
Re: Помогите совершить звонок от несуществующего абонента (AMI + Originate)
у вас просто непонимание что и откуда берется
если допустить, что SIP/cti это ваш пир до провайдера, тогда AMI команда должна выглядеть так:
Action: Originate
Channel: SIP/cti/3386496
Context: default
Prority: 1
Exten: s
|
Откуда: Харьков, Украина
Сообщений: 10
|
Re: Помогите совершить звонок от несуществующего абонента (AMI + Originate)
switch: у вас просто непонимание что и откуда берется
если допустить, что SIP/cti это ваш пир до провайдера, тогда AMI команда должна выглядеть так:
Action: Originate
Channel: SIP/cti/3386496
Context: default
Prority: 1
Exten: s
Попробовал. Не звонит, но ошибка другая: Originate failed. В CLI ошибки в pbx.c:9302 и app_queue.c:1109 функция device_state_cb: recived invalid event that had no device IE
Н.сч. непонимания что откуда берется - истинная правда. Сегодня еду за книжкой. Но, если Вас не затруднит, немогли бы Вы мне растолковать, что где должно содержаться в этих двух конфигах. Из данных у меня есть только: userid, password, authname и domain. Все эти данные, полученные у провайдера, я записал в строчки register и считал что этого достаточно, а в разделе [cti] я пытался описать виртуальный канал, который и должен быть вторым абонентом при обзвоне.
Т.е. правильно ли я понял из документации, что команда Originate совершает дозвон по номеру указанному в параметре Exten после чего передает управления в скрипт, указанный в параметре Context, а в этом скрипте я могу как раз и указать команды ответ, проиграть и положить трубку. Остаеться только неясным как выбрать одну из двух линий. по которой нужно звонить, уверен что это описываеться параметром Channel но не номер же телефона мне туда писать?
Есть предположение, что для полного описания линии команды register не достаточно, тогда мне надо продублировать все регистрационные данные в двух разделах для каждой из линий?
|
Откуда: Уфа
Сообщений: 5856
|
Re: Помогите совершить звонок от несуществующего абонента (AMI + Originate)
С технической стороны подключение к провайдеру заключается в получении у него регистрационных данных: SIP логина, пароля, а также адрес прокси сервера, с которым устанавливать соединение. Эти параметры необходимо прописать в сервер аналогично тому, как создается транк для шлюза. Однако есть и отличия: в параметрах SIP подключения PEER Details нужно явно указать адрес сервера провайдера, а также прописать строку регистрации. Пример настроек для SIPNET:
[sipnet]
type=friend ;через этот аккаунт можно звонить и принимать звонки
username=0034567890 ;SIP ID пользователя
secret=TfbhlQGeTK0g ;SIP пароль
host=sipnet.ru ;Адрес сервера провайдера
nat=no
fromuser=0034567890 ;SIP ID пользователя
fromdomain=sipnet.ru ;доменное имя для учетной записи
dtmfmode=rfc2833 ;формат передачи тональных посылок
insecure=very ;разрешает серверу провайдера не проходить аутентификацию
context=from-pstn ;контекст для входящих вызовов
disallow=all ;запрещаем все кодеки
allow=alaw ;разрешаем только alaw
Большинство VoIP провайдеров требуют, чтобы ваша система регистрировалась. Для этого нужно правильно прописать строку регистрации (Register String). Пример:
username:password@sip.provider.ru
Многие провайдеры требуют указывать и номера DID, например:
username:password@sip.provider.ru/1234567
где 1234567 номер DID. Для примера с Sipnet строка регистрации будет выглядеть так:
0034567890:TfbhlQGeTK0g@sipnet.ru/0034567890
после этого можно звонить на провайдера так
SIP/sipnet/89177515872
если вы нормально пропишите транк (а он сейчас у вас прописан криво), то мой пример команды AMI будет работать в вашем случае. Вы вообще, проверяли свой транк? можете через него позвонить?
PS: оверквоттинг - первый признак неадеквата
|
Откуда: Харьков, Украина
Сообщений: 10
|
Re: Помогите совершить звонок от несуществующего абонента (AMI + Originate)
Спасибо за помощь switch, стало понятнее, земенил в sip.conf секцию [cti]. Вместо бреда написал следующее:
[line01]
type=peer
username=KHRV_P2_577841900.141
auth=yyyyyyyyyyy
secret=xxxxxxxxxx
host=vg3.vegatele.com
nat=yes
fromuser=KHRV_P2_577841900.141
fromdomain=vg3.vegatele.com
context=default
disallow=all
allow=alaw
allow=ulaw
[line02]
type=peer
username=KHRV_P2_577841900.142
auth=yyyyyyyyyyy
secret=xxxxxxxxxx
host=vg3.vegatele.com
nat=no
fromuser=KHRV_P2_577841900.142
fromdomain=vg3.vegatele.com
context=default
disallow=all
allow=alaw
allow=ulaw
после этого команда CLI> sip show peers стала показывать 2 online unmonitored peers.
Транк проверял следующим образом: если эти же данные забить в x-lite то можно сделать исходящий звонок на 3386496 с любой из линий.
Попробовал как Вы рекомендовали:
Action: Originate
Channel: SIP/line01/3386496
Context: default
Prority: 1
Exten: s
в телнете: Originate failed
в CLI много всего, привожу скриншот:
последние два сообщения - это результат попытки выполнить Originate
в середине состояние пиров
в начале - warning при reload'е - на это можно не обращать внимания?
Ещё раз большое спасибо, как всё проясняется когда объясняет опытный человек.
P.S. я вроде бы процетировал всё по-сути...
|
Откуда: Уфа
Сообщений: 5856
|
Re: Помогите совершить звонок от несуществующего абонента (AMI + Originate)
варнинги - хрен бы с ними.
С X-Lite вы не верно делаете. От того, что прописываете все данные в него и пробуете звонить толку ноль целых хрен десятых.
Зарегистрируйте его на астериске в контекст, например, from-internal, для чего сделайте ему учетку в sip.conf
в экстенах напишите
[from-internal]
include => to-pstn
include => ext-local
[to-pstn]
exten=> _XXXXXX.,1,dial(SIP/line01/${EXTEN},30) ;типа маршрут в город
[ext-local]
exten=> 100,1,dial(SIP/100,30) ;типа номер для x-lite
потом попробуйте софтофоном позвонить в город через астериск
PS: и откройте для себя, наконец, putty и ssh
|
Откуда: Днепропетровск, Украина
Сообщений: 199
|
Re: Помогите совершить звонок от несуществующего абонента (AMI + Originate)
serenya: vg3.vegatele.com
Извините что не в тему но любопытство замучало - это у вас услуга «IP линия» от Vega Телеком?
|
Откуда: Харьков, Украина
Сообщений: 10
|
Re: Помогите совершить звонок от несуществующего абонента (AMI + Originate)
SolarW: serenya: vg3.vegatele.com
Извините что не в тему но любопытство замучало - это у вас услуга «IP линия» от Vega Телеком?
Да
|
Откуда: SPb
Сообщений: 1307
|
Re: Помогите совершить звонок от несуществующего абонента (AMI + Originate)
скриншоты - это вещь!)))))
|
Откуда: Харьков, Украина
Сообщений: 10
|
Re: Помогите совершить звонок от несуществующего абонента (AMI + Originate)
скриншоты, ssh, оверквотинг... а воз и ныне там :(
Уважаемые гуру, подскажите что я делаю не так при регистрации, дело в том, что после всех манипуляций перестали приниматься даже входящие вызовы. Вызов доходит до астериска (в CLI: Using SIP RTP CoS mark 5) и тут-же сбрасываеться :(
Помогите, кто разбираеться, пожалуйста...
Привожу модифицированные конфиги, всё упрощено до минимума:
sip.conf
[general]
register => KHRV_P2_577841900.141:xxxxxxxxxxxx:7841900D1TM@vg3.vegatele.com
srvlookup=yes
context=default
directmedia=no
disallow=all
allow=alaw
allow=ulaw
[line01]
type=friend
username=KHRV_P2_577841900.141
auth=7841900D1TM
secret=xxxxxxxxxxxx
host=vg3.vegatele.com
nat=yes
fromuser=KHRV_P2_577841900.141
fromdomain=vg3.vegatele.com
insecure=invite
extensions.conf
[general]
static=yes
[default]
exten => s,1,Answer
exten => s,2,Wait(1)
exten => s,3,Playback(hello-world,skip)
exten => s,4,Hangup
|
|