Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

DAHDI Сброс аналоговой линии

0

FreePBX 2.10 FXO/FXS Parabel Asteroid

chan_dahdi.conf:

[channels]
language=ru
busydetect=yes
busycount=3
usecallerid=yes
callwaiting=yes
usecallingpres=yes
threewaycalling=yes
transfer=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
echotraining=no
immediate=no
faxdetect=no
rxgain=0.0
txgain=0.0
callerid=asreceived
cidsignalling=bell
cidstart=ring
pulse=yes
pulsedial=no
restrictcid=no
rxflash=850
useincomingcalleridonzaptransfer=yes

Все работает кроме: если в Inbound Routes на внешнем аналоговом номере в Set Destination указано Terminate Call: Busy или Hangup. При этом звонивший не отбивается, а продолжает дозваниваться...

Лог:

[2013-08-26 23:56:01] VERBOSE[18545] sig_analog.c:     -- Starting simple switch on 'DAHDI/13-1'
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [s@from-zaptel:1] NoOp("DAHDI/13-1", "Entering from-dahdi with DID == ") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [s@from-zaptel:2] Ringing("DAHDI/13-1", "") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [s@from-zaptel:3] Set("DAHDI/13-1", "DID=s") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [s@from-zaptel:4] NoOp("DAHDI/13-1", "DID is now s") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [s@from-zaptel:5] GotoIf("DAHDI/13-1", "1?dahdiok:checkzap") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Goto (from-zaptel,s,9)
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [s@from-zaptel:9] NoOp("DAHDI/13-1", "Is a DAHDi Channel") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [s@from-zaptel:10] Set("DAHDI/13-1", "CHAN=13-1") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [s@from-zaptel:11] Set("DAHDI/13-1", "CHAN=13") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [s@from-zaptel:12] Macro("DAHDI/13-1", "from-dahdi-13,s,1") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [s@macro-from-dahdi-13:1] NoOp("DAHDI/13-1", "Entering macro-from-dahdi-13 with DID = s and setting to: 7770102") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [s@macro-from-dahdi-13:2] Set("DAHDI/13-1", "__FROM_DID=7770102") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [s@macro-from-dahdi-13:3] Goto("DAHDI/13-1", "from-trunk,7770102,1") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Goto (from-trunk,7770102,1)
[2013-08-26 23:56:05] VERBOSE[18545] app_macro.c:   == Channel 'DAHDI/13-1' jumping out of macro 'from-dahdi-13'
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [7770102@from-trunk:1] Set("DAHDI/13-1", "__FROM_DID=7770102") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [7770102@from-trunk:2] Gosub("DAHDI/13-1", "app-blacklist-check,s,1()") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [s@app-blacklist-check:1] GotoIf("DAHDI/13-1", "0?blacklisted") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [s@app-blacklist-check:2] Set("DAHDI/13-1", "CALLED_BLACKLIST=1") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [s@app-blacklist-check:3] Return("DAHDI/13-1", "") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [7770102@from-trunk:3] Set("DAHDI/13-1", "CDR(did)=7770102") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [7770102@from-trunk:4] ExecIf("DAHDI/13-1", "1 ?Set(CALLERID(name)=)") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [7770102@from-trunk:5] Set("DAHDI/13-1", "__CALLINGPRES_SV=allowed_not_screened") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [7770102@from-trunk:6] Set("DAHDI/13-1", "CALLERPRES()=allowed_not_screened") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [7770102@from-trunk:7] Goto("DAHDI/13-1", "app-blackhole,busy,1") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Goto (app-blackhole,busy,1)
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [busy@app-blackhole:1] NoOp("DAHDI/13-1", "Blackhole Dest: Busy") in new stack
[2013-08-26 23:56:05] VERBOSE[18545] pbx.c:     -- Executing [busy@app-blackhole:2] Busy("DAHDI/13-1", "20") in new stack
[2013-08-26 23:56:06] WARNING[18545] sig_analog.c: Ring/Off-hook in strange state 7 on channel 13
[2013-08-26 23:56:09] VERBOSE[18545] pbx.c:   == Spawn extension (app-blackhole, busy, 2) exited non-zero on 'DAHDI/13-1'
[2013-08-26 23:56:09] VERBOSE[18545] sig_analog.c:     -- Hanging up on 'DAHDI/13-1'
[2013-08-26 23:56:09] VERBOSE[18545] chan_dahdi.c:     -- Hungup 'DAHDI/13-1'
[2013-08-26 23:56:11] VERBOSE[18549] sig_analog.c:     -- Starting simple switch on 'DAHDI/13-1'
...

Как сбросить звонок с аналоговой линии средствами freepbx?

удалить закрыть спам изменить тег редактировать

спросил 2013-08-26 22:08:32 +0400

lioncub Gravatar lioncub
116 8 1 11

обновил 2013-08-27 20:40:30 +0400

Comments

На сколько правильно использовать Terminate Call: Play SIT Tone (Zapateller)?

-- Goto (app-blackhole,zapateller,1)
-- Executing [zapateller@app-blackhole:1] NoOp("DAHDI/13-1", "Blackhole Dest: Play SIT Tone") in new stack
-- Executing [zapateller@app-blackhole:2] Answer("DAHDI/13-1", "") in new stack
-- Executing [zapateller@app-blackhole:3] Zapateller("DAHDI/13-1", "") in new stack
-- Auto fallthrough, channel 'DAHDI/13-1' status is 'UNKNOWN'
-- Hanging up on 'DAHDI/13-1'
-- Hungup 'DAHDI/13-1'
lioncub ( 2013-08-27 17:27:18 +0400 )редактировать

2 Ответа

0

в соответсвии с приведенным логом номер 7770102 переводится а занято. куда он у вас там дозванивается - непонятно.

ссылка удалить спам редактировать

ответил 2013-08-27 07:24:35 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

Все правильно, никуда он не должен дозваниваться. Ему должен приходить либо отбой, либо сигнал занято... По факту он ждет поднятия трубки (длинные гудки).

lioncub ( 2013-08-27 12:02:39 +0400 )редактировать

вам же написали ниже. при аналоговой линии можно только ответить предварительно.

meral ( 2013-08-27 12:36:55 +0400 )редактировать

А как тогда астериск дает отбой если этот внутренний абонент уже разговаривает по внутренней линии? Т.е. можно поднять внутреннюю линию перед соединением, и будет сразу отбой звонившему. Как и можно ли вообще такое сделать?

lioncub ( 2013-10-08 17:03:10 +0400 )редактировать

идите почитайте про сигнализацию аналоговой телефонии. ну в википедии например. ну вот давайте я вам пример для детей дам. вот у вас две трубы есть из басейна. с севера и с юга(провода). вот в басейн наливают воду(звонок) и она потекла. а теперь ваш вопрос выглядит так. как краном на сервеной трубе перекрыть южную,в случае если человек на южной трубе свой кран открыл. так понятно?

meral ( 2013-10-08 17:51:39 +0400 )редактировать

все. больше не буду. пациент не лечится. удачки.

meral ( 2013-10-08 19:27:32 +0400 )редактировать
0

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

ссылка удалить спам редактировать

ответил 2013-08-27 07:44:58 +0400

switch Gravatar switch
8334 11 7 92
http://lynks.ru/

Comments

А если оборвать линию, разве сброса не будет?

В принципе интересует любой сброс, но чтоб деньги не снимал с того кто звонит...

lioncub ( 2013-08-27 11:59:57 +0400 )редактировать

оборвать куда? вы попробуйте чтоли. обрваная линиия(обрезанная ножницами или вынутый штекер телефона) будет прекарсно звонить дальше. вот если вы ее замкнете, то выключиться. на атс. навсегда.

meral ( 2013-08-27 12:37:38 +0400 )редактировать

а как тогда средствами freepbx сбросить звонок?

lioncub ( 2013-08-27 17:02:46 +0400 )редактировать

сделать announce из sielence/1 и после него сделать hangup.

meral ( 2013-08-27 20:31:17 +0400 )редактировать

тоже вариант!!! а как насчет Terminate Call: Play SIT Tone (Zapateller)??? (выше спрашивал)

lioncub ( 2013-08-27 20:34:39 +0400 )редактировать

ну пробуйте,че.

meral ( 2013-08-27 20:35:27 +0400 )редактировать

я попробовал... на сотовом 2сек пишет (фактически наверное 1сек) и отбой... что не тарифицируется..

интересует "идеологически" правильно ли так делать...

lioncub ( 2013-08-27 20:43:08 +0400 )редактировать

Идеологически лучше ничего не делать

switch ( 2013-08-27 20:50:01 +0400 )редактировать

Не тупите. Вам уже все объяснили.

switch ( 2013-10-08 20:04:16 +0400 )редактировать

Извиняюсь. В таком случае интересуют 2 момента.

  1. Как поднять и опустить трубку для вызывающего абонента с аналоговой линии?

  2. Если поставить отбойник DCPC-1 (otboynik.ru) между asterisk и атс, он будет отбивать звонящего?

lioncub ( 2013-10-14 08:06:45 +0400 )редактировать
  1. сначала сделайте answer(), затем сразу hangup()
  2. читайте что там написано и для чего он предназначен. Вроде по-русски написано.
switch ( 2013-10-14 08:13:41 +0400 )редактировать

сразу может не сработать. иногда в промежутке надо wait(0.1) поставить. если другйо телефон поднял трубку - точно не сработает.сделать ничего нельзя.

meral ( 2013-10-14 13:54:37 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2013-08-26 22:08:32 +0400

Просмотрен: 1,430 раз

Обновлен: Aug 27 '13

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.