First time here? Check out the FAQ!

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

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

2

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

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

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

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

спросил Oct 28 '11

ponch Gravatar ponch
231 26 3 12

обновил Oct 28 '11

Comments

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

meral (Oct 28 '11)edit

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

ponch (Oct 28 '11)edit

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)))
ссылка удалить спам редактировать

ответил Oct 31 '11

ponch Gravatar ponch
231 26 3 12

обновил Oct 31 '11

Comments

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

meral (Oct 31 '11)edit

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

ponch (Oct 31 '11)edit

Чего вы выдумываете? Не стоит плохо думать о разработчиках 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 (Oct 31 '11)edit

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

meral (Oct 31 '11)edit

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

meral (Oct 31 '11)edit

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

edo (Oct 31 '11)edit

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

meral (Nov 1 '11)edit

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

vertex (Jan 26 '12)edit

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

meral (Jan 26 '12)edit
0

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

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

ответил Oct 28 '11

ponch Gravatar ponch
231 26 3 12

обновил Oct 28 '11

Comments

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

ponch (Oct 28 '11)edit

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

meral (Oct 28 '11)edit

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

ponch (Oct 28 '11)edit
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.

не оно?

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

ответил Oct 28 '11

edo Gravatar edo
51 4

Comments

упс, не оно

edo (Oct 28 '11)edit

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

edo (Oct 28 '11)edit

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

ponch (Oct 28 '11)edit

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

edo (Oct 28 '11)edit
0

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

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

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

ответил Oct 28 '11

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

обновил Oct 28 '11

Comments

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

ponch (Oct 28 '11)edit

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

meral (Oct 29 '11)edit

Ваш ответ

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 ленту новостей

Статистика

Задан: Oct 28 '11

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

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

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