VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Получение CallerID

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

slavaka_z
Сообщения: 34
Зарегистрирован: 18 дек 2011, 16:55

Получение CallerID

Сообщение 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 проходили?
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение 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 провайдера зарегистрировать прямо на Астериске.
slavaka_z
Сообщения: 34
Зарегистрирован: 18 дек 2011, 16:55

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

Сообщение slavaka_z »

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

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

context=from-zaptel

нужно

context=from-dahdi?
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение 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
slavaka_z
Сообщения: 34
Зарегистрирован: 18 дек 2011, 16:55

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

Сообщение 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, явно вроде ничего нет, но больше инфы мне из него выжать пока не удалось.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

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

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

Сообщение slavaka_z »

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

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

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

Сообщение ded »

Те, которые в конфигах.
GUI добавляет все параметры в эти самые .conf файлы, а Астериск оттуда перечитывает.
slavaka_z
Сообщения: 34
Зарегистрирован: 18 дек 2011, 16:55

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

Сообщение slavaka_z »

Ура, получилось! Книжку пока просто пролистал по диагонали, но уже помогло))

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

cidsignalling=v23
cidstart=ring

чтобы соответствовать шлюзам, и номер стал определяться! Всем спасибо!
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение ded »

slavaka_z, кому это - всем? Всем кто читал?
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH