The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Сообщения типа 'Занято' Asterisk"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (VoIP / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Сообщения типа 'Занято' Asterisk"  +/
Сообщение от artemrts (ok) on 13-Июл-11, 12:06 
Астериск 1.8. Кусок лога звонящего 758.

[Jul 13 10:48:01]   == Using SIP RTP TOS bits 184
[Jul 13 10:48:01]     -- Executing [759@local:1] Macro("SIP/758-0000009c", "dial-local,SIP/759") in new stack
[Jul 13 10:48:01]     -- Executing [s@macro-dial-local:1] Dial("SIP/758-0000009c", "SIP/759,20,mt") in new stack
[Jul 13 10:48:01]   == Using SIP RTP TOS bits 184
[Jul 13 10:48:01] NOTICE[32738]: chan_sip.c:5699 update_call_counter: Call to peer '759' rejected due to usage limit of 1
[Jul 13 10:48:01]     -- Couldn't call 759
[Jul 13 10:48:01]   == Everyone is busy/congested at this time (0:0/0/0)
[Jul 13 10:48:01]     -- Executing [s@macro-dial-local:2] Goto("SIP/758-0000009c", "s-CHANUNAVAIL,1") in new stack
[Jul 13 10:48:01]     -- Goto (macro-dial-local,s-CHANUNAVAIL,1)
[Jul 13 10:48:01]     -- Executing [s-CHANUNAVAIL@macro-dial-local:1] Playback("SIP/758-0000009c", "ru/abonent") in new stack
[Jul 13 10:48:02]     -- <SIP/758-0000009c> Playing 'ru/abonent.gsm' (language 'ru')
[Jul 13 10:48:02]     -- Executing [s-CHANUNAVAIL@macro-dial-local:2] Playback("SIP/758-0000009c", "ru/is-curntly-unavail") in new stack
[Jul 13 10:48:02]     -- <SIP/758-0000009c> Playing 'ru/is-curntly-unavail.gsm' (language 'ru')
[Jul 13 10:48:04]     -- Executing [759@local:2] Hangup("SIP/758-0000009c", "") in new stack

Абонент 759 позвонил и разговаривает. Ему пыиаеися позвонить абонент 758.

Идея такая.Звонящему сообщается, что "абонент сейчас разговаривает, подождите", а получателю в трубке - короткие гудки, что бы он понял что ему звонят, а не полноценный вызов абонента.

Я сделал ограничение в 1 звонок, а так же limitonpeer=yes.

Как заставить Астериска выдавать статус "busy", а не "CHANUNAVAI". Странно, в логе явно указан статус
"Everyone is busy/congested at this time (0:0/0/0)", а звонящему выдается "CHANUNAVAI".

[local]

exten => 758,1,Macro(dial-local,SIP/758)
exten => 758,n,Hangup()

exten => 759,1,Macro(dial-local,SIP/759)
exten => 759,n,Hangup()

[macro-dial-local]

exten => s,1,Dial(${ARG1},20,mt)
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Playback(vm-nobodyavail)
exten => s-BUSY,1,Playback(ru/abonent)
exten => s-BUSY,2,Playback(ru/vm-isonphone)
exten => s-BUSY,3,Busy(3)
exten => s-CONGESTION,1,Congestion(3)
exten => s-CHANUNAVAIL,1,Playback(ru/abonent)
exten => s-CHANUNAVAIL,2,Playback(ru/is-curntly-unavail)

Вобщем поделитесь опытом как реализовать идею.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Сообщения типа 'Занято' Asterisk"  +/
Сообщение от fa email(??) on 13-Июл-11, 22:45 
По-моему, то что Вы описали сделать нельзя. Есть 2 варианта: call waiting или очередь.

call waiting: тому, кто разговаривает будет послано несколько гудков, мол "тебе еще кто-то звонит". Он сможет оставить первого "в ожидании" и поговорить со вторым. тому, кто звонит, ничего не сообщается. Он просто слышит обычные гудки, ожидая пока возьмут трубку. call waiting должен поддерживаться телефонным адаптером (ATA).

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Сообщения типа 'Занято' Asterisk"  +/
Сообщение от artemrts (ok) on 14-Июл-11, 00:29 
>[оверквотинг удален]
> кто-то звонит". Он сможет оставить первого "в ожидании" и поговорить со
> вторым. тому, кто звонит, ничего не сообщается. Он просто слышит обычные
> гудки, ожидая пока возьмут трубку. call waiting должен поддерживаться телефонным адаптером
> (ATA).
> очередь: кому, кто звонит, сообщается "вы первый в очереди. ожидайте". и он
> ожидает, пока не надоест, периодически слыша это сообщение. тот, кто в
> это время разговаривает, ничего не знает о том, сколько там кого
> в очереди. он просто разговаривает. когда кладет трубку, сразу же раздается
> новый звонок, и он говорит уже с тем, кто был в
> очереди.

Спасибо за исчерпывающий ответ. call waiting в принципе подойдет.

Тут у меня случайно всплыл еще один вопрос. На тестовой машинке запущены виртуалки, на которых установлены клиенты (софтовые телефоны). И вот когда был режим разговора потух свет, вырубился компьютер и, естественно, виртуалки. А потом я обнаружил, что канал не закрылся, т.е. Астериск думал, что абоненты разговаривают. Я погуглил, почитал sip.conf...
Вобщем прописал в sip.conf
rtptimeout=10
Смоделировал ситуацию обрыва соединения, но канал автоматом так и не закрылся.
В чем тут проблема?


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру