Страница 1 из 3

Получение CallerID

Добавлено: 18 дек 2011, 17:23
slavaka_z
Здравствуйте,

есть четыре входящих линии поддерживающие CallerID (подключаю аналоговый телефон с поддержкой CallerID - Texet и входящий номер определяется). Втыкаю эти линии в TDM800, ставлю "все звонки переводить на номер 6000", на компьютере стоит X-Lite Софтфон зарегистрированный на этот номер 6000. Входящий звонок на него проходит, но вместо CallerID пишет Anonymous.

Если зайти Asterisk -r, то при звонке выдает:

server*CLI>
-- Starting simple switch on 'DAHDI/1-1'
-- Executing [s@DID_trunk_1:1] ExecIf("DAHDI/1-1", "1?SetCallerPres(unavailable)") in new stack
-- Executing [s@DID_trunk_1:2] ExecIf("DAHDI/1-1", "1?Set(CALLERID(all)=unknown <0000000>)") in new stack
-- Executing [s@DID_trunk_1:3] Goto("DAHDI/1-1", "default,6000,1") in new stack
-- Goto (default,6000,1)
-- Executing [6000@default:1] Dial("DAHDI/1-1", "SIP/6000") in new stack
== Using SIP RTP CoS mark 5
-- Called SIP/6000
-- SIP/6000-00000003 is ringing

Нашел подобные строчки в /etc/astersisk/extensions.conf:

[DID_trunk_1_default]
exten = s,1,ExecIf($[ "${CALLERID(num)}"="" ]?SetCallerPres(unavailable))
exten = s,2,ExecIf($[ "${CALLERID(num)}"="" ]?Set(CALLERID(all)=unknown <0000000>))
exten = s,3,Goto(default,6000,1)

но, не соображу, что нужно поменять, чтобы на X-Lite входящие CallerID проходили?

Re: Получение CallerID

Добавлено: 18 дек 2011, 23:33
ded
Там менять ничего не надо.
А надо настроить DAHDI

Код: Выделить всё

; Span 1: Wildcard TDM800
;;; line="1 WCTDM/8/0 FXSKS (EC: MG2)"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 1
group=
context=from-zaptel
Эти линии приходят из AddPac? В который они подаются от VoIP провайдера? Тогда не нужно преобразовывать постоянный ток в переменный, а затем снова в постоянный. Имея ввиду - преобразовывать VoIP в аналог, потом опять в VoIP.
Нужно транки от VoIP провайдера зарегистрировать прямо на Астериске.

Re: Получение CallerID

Добавлено: 19 дек 2011, 00:14
slavaka_z
я скорее всего так и сделаю, но у меня не только AddPac, но еще и аналоговые GSM шлюзы есть, которые жалко выкидывать) (Да и потом, из соображений безопасности решил не втыкать интернет во внутренний сервер вообще)

Сделал, как вы написали, но пока изменений нет. Я не ставил zaptel, как понял, это вроде как старое название dahdi, так что я сразу dahdi ставил. Может быть вместо

context=from-zaptel

нужно

context=from-dahdi?

Re: Получение CallerID

Добавлено: 19 дек 2011, 00:34
ded
Вы понимаете что такое context? Это условность, просто кусок диалплана, его можно назвать как угодно,
context=from-trunk
context=from-my-gsm-gateway
context=from-addpac
context=from-my-mind

Вам надо дебажить - направить звонок, смотреть в консоль, смотреть /var/log/asterisk/full
там очень внятно-понятно всё.
Ключевые слова в запрос Гугля - howto debug dahdi fxo callerid

Re: Получение CallerID

Добавлено: 19 дек 2011, 12:57
slavaka_z
Ну и погоняли вы меня... гуглил, гуглил.... нашел, что смог...

В итоге поставил:

CLI>core set verbose 8 dahdi

вроде ничего особо не дало.

В logger.conf разрешил "debug => debug", добавил "debug,verbose,dtmf" в "console =>", разрешил "full =>..." В принципе в логах "full" и в консоли пишет тоже самое, вроде разницы нет.

В extensions.conf пока поставил:
[DID_trunk_1_default]
exten => s,1,NoOp(${CALLERID(num)}---${CALLERID(name)})
exten => s,2,Dial(SIP/6000)

Попробовал
core set debug channel DAHDI/1-1

...опытным путем выяснил, что это работает только когда происходит звонок, в итоге у меня получается:


== Starting post polarity CID detection on channel 1
-- Starting simple switch on 'DAHDI/1-1'
-- Executing [s@DID_trunk_1:1] NoOp("DAHDI/1-1", "---") in new stack
-- Executing [s@DID_trunk_1:2] Dial("DAHDI/1-1", "SIP/6000") in new stack
== Using SIP RTP CoS mark 5
-- Called SIP/6000
-- SIP/6000-00000039 is ringing
CLI> core set debug channel "DAHDI/1-1"
Debugging enabled on channel DAHDI/1-1
Debugging on new channels is enabled
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [DAHDI/1-1]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [DAHDI/1-1]
<< [ TYPE: Control (4) SUBCLASS: Ring (2) ] [DAHDI/1-1]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [DAHDI/1-1]
<< [ TYPE: Control (4) SUBCLASS: Ring (2) ] [DAHDI/1-1]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [DAHDI/1-1]
<< [ TYPE: Control (4) SUBCLASS: Ring (2) ] [DAHDI/1-1]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [DAHDI/1-1]
<< [ TYPE: Control (4) SUBCLASS: Ring (2) ] [DAHDI/1-1]
<< [ TYPE: Null Frame (5) SUBCLASS: N/A (0) ] [DAHDI/1-1]
<< [ HANGUP (NULL) ] [DAHDI/1-1]
== Spawn extension (DID_trunk_1, s, 2) exited non-zero on 'DAHDI/1-1'
-- Hanging up on 'DAHDI/1-1'
-- Hungup 'DAHDI/1-1'

Не знаю, говорится ли здесь что-то про callerID, явно вроде ничего нет, но больше инфы мне из него выжать пока не удалось.

Re: Получение CallerID

Добавлено: 19 дек 2011, 13:06
ded
Существует несколько методов определения CallerID, почитайте в википедии. У вас отработал такой -
= Starting post polarity CID detection on channel 1
Почитайте что такое (reverse) polarity - на форумах связистов-телефонистов это называется переполюсовка.
Метод использовался для опереления начала тарификации, в таксофонах например. В Америке - bellcore. И DTMF после первого или второго звонка.
У вас скорее всего другой - FSK.
И там есть нюансы.
Идите в библиотеку - asterisk.ru/knowledgebase/books

Re: Получение CallerID

Добавлено: 19 дек 2011, 16:10
slavaka_z
Да, в библиотеку - это хорошо... начну читать, это всегда полезно.

По идее, если шлюз выдает по инструкции CallerID DTMF c переплюсовкой, значит на плате нужно тоже самое выставить. Но мне, чтобы выставить, нужно понять вот что - у меня поверх Астериска стоит Астериск Gui, в chan_dahdi.conf и в Астериск GUI стоят разные настройки одних и тех же параметров, какие в итоге берутся в работу? Может я не там меняю?

Re: Получение CallerID

Добавлено: 19 дек 2011, 17:04
ded
Те, которые в конфигах.
GUI добавляет все параметры в эти самые .conf файлы, а Астериск оттуда перечитывает.

[РЕШЕНО] Получение CallerID

Добавлено: 21 дек 2011, 17:55
slavaka_z
Ура, получилось! Книжку пока просто пролистал по диагонали, но уже помогло))

Спасибо за подсказку по переплюсове, плата видимо не понимала переплюсовку, которая стояла на моих шлюзах по умолчанию. Я на шлюзах выставил FSK DTMF без переплюсовки и поставил в chan_dahdi.conf

cidsignalling=v23
cidstart=ring

чтобы соответствовать шлюзам, и номер стал определяться! Всем спасибо!

Re: Получение CallerID

Добавлено: 21 дек 2011, 18:02
ded
slavaka_z, кому это - всем? Всем кто читал?