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

Приветствие вызывающей стороне

2

Клиент звонит, человек поднимает трубку и "забывает" представиться. Как проиграть файл ВЫЗЫВАЮЩЕЙ стороне после соединения? Если делать так:

[macro-privet]
exten => s, 1, Playback(privet)

...
exten => 300, n, Dial(SIP/103,60,M(privet))

то "Привет" после поднятия трубки услышит только вызываемая сторона. Делать Answer, иммитировать гудки и делать наши черные дела не хочется, так как человек будет платить за звонок.

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

спросил 2011-10-28 10:07:15 +0400

ponch Gravatar ponch
231 26 3 12

обновил 2011-10-28 11:00:10 +0400

Comments

чето не совсем понятно что вы хотите. и чем вам стандартные фичи не нравятся

meral ( 2011-10-28 13:50:41 +0400 )редактировать

мне-то они нравяться... идет звонок на оператора, оператор обязан представиться, чтобы клиент знал на кого жаловаться, оператор этого не делает, убираем человеческий фактор и делаем это через asterisk. Что тут не понятного? Как стандартно это можно сделать, чтобы клиент не платил за звонок когда нет соединения с реальным оператором?

ponch ( 2011-10-28 18:35:22 +0400 )редактировать

4 Ответа

1

Ура!!! Нашел таки! Вот как можно:

exten => 300, n, Set(LIMIT_PLAYAUDIO_CALLEE=yes)
exten => 300, n, Set(LIMIT_PLAYAUDIO_CALLER=yes)
exten => 300, n, Set(LIMIT_CONNECT_FILE=privet)
exten => 300, n, Dial(SIP/103,60,L(30000)))
ссылка удалить спам редактировать

ответил 2011-10-31 10:12:01 +0400

ponch Gravatar ponch
231 26 3 12

обновил 2011-10-31 10:12:53 +0400

Comments

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

meral ( 2011-10-31 12:53:10 +0400 )редактировать

Уверены? Файл проигрывается в самом начале и поток можно прибить, надо будет глянуть исходники. Остальные методы чем лучше? По-любому надо будет делать дополнительный канал, а то и два, плюс усложняется логика работы (=снижение надежности). И потом компьютер он железный :) пущай работает. :) У меня 50 одновременных звонков всего...

ponch ( 2011-10-31 16:14:20 +0400 )редактировать

Чего вы выдумываете? Не стоит плохо думать о разработчиках Asterisk. Все в обычной обработке Dial делается, особенно порадовало, что дополнительный канал не делается:

ast_channel_lock(chan);

...

var = pbxbuiltingetvarhelper(chan, "LIMITCONNECT_FILE");

config->start_sound = !ast_strlen_zero(var) ? ast_strdup(var) : NULL;

ast_channel_unlock(chan);

Короче, по ресурсам метод с LIMIT самый эффективный :-P

ponch ( 2011-10-31 17:14:28 +0400 )редактировать

угу. а ты посмотри код который выхывается твоими 30000. ты не то смотришь. вобщем твое дело. это ты смотришь установку параметров а не проверку. проверка будет по ответу сделана.

meral ( 2011-10-31 19:55:54 +0400 )редактировать

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

meral ( 2011-10-31 20:08:24 +0400 )редактировать

ИМХО раз не предлложено способа лучше, то и не может быть никаких претензий.

edo ( 2011-11-01 00:27:17 +0400 )редактировать

ну. с моей точки зрения лучший я изложил. насколько он лучше вашего зависит от длины звонков и частоты вызова.

meral ( 2011-11-01 04:50:14 +0400 )редактировать

При реализации метода с LIMIT приветствие слышит сначала вызывающая сторона, вызываемая в это время ничего не слышит, затем наоборот. Это нормально?

vertex ( 2012-01-26 16:34:40 +0400 )редактировать

неизвестно.я ж говрю он просто не предназначен для сего действаю

meral ( 2012-01-26 16:35:44 +0400 )редактировать
0

Background не спас отца русской демократии...

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

ответил 2011-10-28 11:03:19 +0400

ponch Gravatar ponch
231 26 3 12

обновил 2011-10-28 11:22:02 +0400

Comments

вызывающая сторона ждет когда все проиграется

ponch ( 2011-10-28 11:21:19 +0400 )редактировать

ну и что вам в этом не нравитсья? вы хотите приветсвие пока звонит? бекграййунт вообще работает без подъема трубки?

meral ( 2011-10-28 18:52:48 +0400 )редактировать

мне не нравиться, что приветствие не слышит ВЫЗЫВАЮЩАЯ строна, точне даже надо чтобы слышали ОБЕ стороны. Если делать в макросе Answer() а потом Background(), то все равно не слышно, пока не проиграется

ponch ( 2011-10-28 19:11:03 +0400 )редактировать
0

The options parameter, which is optional, is a string containing zero or more of the following flags and parameters:

A(x): Play an announcement (x.gsm) to the called party.

не оно?

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

ответил 2011-10-28 12:04:26 +0400

edo Gravatar edo
51 4

Comments

упс, не оно

edo ( 2011-10-28 12:08:05 +0400 )редактировать

может быть app_inject можно приспособить? http://www.dumaisnet.ca/index.php?p=asteriskapp

edo ( 2011-10-28 12:16:07 +0400 )редактировать

Это немного нето. И хотелось бы сделать стандартными средствами диалплана

ponch ( 2011-10-28 18:36:59 +0400 )редактировать

у меня есть ощущение, что штатными средствами задача не решается

edo ( 2011-10-28 20:18:07 +0400 )редактировать
0

чтоб не платил за звонок надо чтоб ВАШ сип ПРОВАЙДЕР поддерживал early media. если он это поддерживает, то будет работать background/playback без ответа канала. если не работает, то у вас либо выключен earlymedia=no в sip.conf, либо что более вероятно провайдер это НЕ поддерживает.

средствами диалплана ПЕРЕД ответом это сделать нельзя. можно вначале как у вас в примере.

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

ответил 2011-10-28 18:50:17 +0400

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

обновил 2011-10-28 18:50:48 +0400

Comments

У меня на входе E1 и GSM-шлюз. Мне не надо ПЕРЕД началом разговора, мне надо в момент соединения (ВО ВРЕМЯ РАЗГОВОРА) проиграть звуковой файл так, чтобы его слышала вызывающая сторона. Как?

ponch ( 2011-10-28 19:03:25 +0400 )редактировать

ну тогда только внешней программой. запускаете командой М макрос, соединяете. макрсо инициирует два звонка. он одновременно обоим сторонам проигрывают сообщение использую chan_spy(не забудьте там nocdr ). ну и все. еще есть вариант с временной конференцией, но он меняет CDR.

meral ( 2011-10-29 21:52:41 +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 ленту новостей

Статистика

Задан: 2011-10-28 10:07:15 +0400

Просмотрен: 2,571 раз

Обновлен: Oct 31 '11

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