Asterisk дома

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
kpp
Сообщения: 147
Зарегистрирован: 29 авг 2011, 15:03
Откуда: Київ-Дніпро

Re: Asterisk дома

Сообщение kpp » 20 окт 2011, 12:54

Приехала и мне карта TDM411.
Как правильно настроить ее (в файле system.conf) ?
Утилиты dahdi_genconf нет.
Или покажите что у вас в system.conf.

Загруженные модули:

Код: Выделить всё

wctdm24xxp.ko
dahdi.ko
dahdi_voicebus.ko
# dahdi_scan

Код: Выделить всё

[1]
active=yes
alarms=UNCONFIGURED
description=Wildcard TDM410P Board 1
name=WCTDM/0
manufacturer=Digium
devicetype=Wildcard TDM410P (VPM100M)
location=PCI Bus 05 Slot 06
basechan=1
totchans=4
irq=20
type=analog
port=1,FXO
port=2,none
port=3,none
port=4,FXS
# dahdi_cfg -vv

Код: Выделить всё

DAHDI Tools Version - 2.4.0-rc1

DAHDI Version: 2.4.0-rc5
Echo Canceller(s):
Configuration
======================


Channel map:

Channel 01: FXO Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 01)
Channel 04: FXS Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 04)

2 channels to configure.

Changing signalling on channel 1 from Unused to FXO Kewlstart
DAHDI_CHANCONFIG failed on channel 1: Invalid argument (22)
Selected signaling not supported
Possible causes:
        FXO signaling is being used on a FXO interface (use a FXS signaling variant)
        RBS signaling is being used on a E1 CCS span
        Signaling is being assigned to channel 16 of an E1 CAS span
То, что я прописал в system.conf :

Код: Выделить всё

fxoks=1
echocanceller=mg2,1

fxsks=4
echocanceller=mg2,4

loadzone=ru
defaultzone=ru
"Та нам з тобою своє робити, відкрити очі і далі йти!
І зуби сильно стиснувши, маму ніжно любити, хто ж тоді, як не ми, брати?!"(с)

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Asterisk дома

Сообщение Andrey_B » 20 окт 2011, 18:26

У вас в system.conf, кажется, перепутаны fxoks и fxsks
Попробуйте, так:

Код: Выделить всё

fxoks=4
fxsks=1
echocanceller=mg2,1-4

kpp
Сообщения: 147
Зарегистрирован: 29 авг 2011, 15:03
Откуда: Київ-Дніпро

Re: Asterisk дома

Сообщение kpp » 21 окт 2011, 10:57

Спасибо, Андрей. Так и есть.
Не дочитал документацию...
Хоть канал и FXO, но настраивается он на работу по протоколу FXS и наоборот :lol:
Вот такая сбивалка с толку.
"Та нам з тобою своє робити, відкрити очі і далі йти!
І зуби сильно стиснувши, маму ніжно любити, хто ж тоді, як не ми, брати?!"(с)

kpp
Сообщения: 147
Зарегистрирован: 29 авг 2011, 15:03
Откуда: Київ-Дніпро

Re: Asterisk дома

Сообщение kpp » 23 окт 2011, 16:57

На счет юсб-хаба Dlink H7 - нормально работает с 3-мя модемами Хуавей E150, при подключении 4-го - модемы отваливаются по очереди. Хоть так...

Возникла непонятка с городской телефонной линией, подключенной в FXO порт платы TDM410 (китайский клон). Может кто направит на путь истинный...
Городская линия: аналоговая, режим набора только пульсом.
Подключенный напрямую телефон переводился в пульсовый режим.
Городские номера набираеюся нормально.
Междугородние звонки и звонки на мобильных операторов возможен только в виде: 0pXXXZZZZZZZ XXX - код города или оператора ZZZZZZZ - номер телефона.

Теперь, городская линия подключена в FXO порт платы TDM410.
Настройки в chan_dahdi.conf такие:

Код: Выделить всё

context=town-line
signaling=fxs_ks
pulsedial=yes
channel => 1
Звонки по городу проходят нормально.

Код: Выделить всё

exten => _9XXXXXX, 1, Dial(DAHDI/1/${EXTEN:1})
exten => _9XXXXXX, n, Hangup()
А вот позвонить на межгород\другого оператора не удается...

Код: Выделить всё

exten => _9044XXXXXXX, 1, Dial(DAHDI/1/${EXTEN:1})
exten => _9044XXXXXXX, n, Hangup()
Пробовал по-разному:

Код: Выделить всё

exten => _9044XXXXXXX, 1, Dial(DAHDI/1/${EXTEN:1:1}p${EXTEN:2})
exten => _9044XXXXXXX, 1, Dial(DAHDI/1/${EXTEN:1:1}w${EXTEN:2})
exten => _9044XXXXXXX, 1, Dial(DAHDI/1/${EXTEN:1:1}www${EXTEN:2})
exten => _9044XXXXXXX, 1, Dial(DAHDI/1/${EXTEN:1:1}wpw${EXTEN:2})
По дебагу видно, что номер набирается верно 0pXXXZZZZZZZ, но, либо попадаю не туда, либо вообще откидывает...
Скорее всего не успевает ГАТС обработать цифры или перейти в режим пульса после "0"
Вроде как удалось победить, не знаю, правда, на сколько стабильно будет :

Код: Выделить всё

exten => _9044XXXXXXX, 1, Dial(DAHDI/1/w${EXTEN:1:1}wpw${EXTEN:2})
Настроил также шлюз на скайп.
Все работет как надо.
Но качество слабенькое...
Заметное запаздывание, провалы...
Что можно подкрутить?
"Та нам з тобою своє робити, відкрити очі і далі йти!
І зуби сильно стиснувши, маму ніжно любити, хто ж тоді, як не ми, брати?!"(с)

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Asterisk дома

Сообщение Andrey_B » 18 ноя 2011, 00:01

stpavel, и другие знатоки Asterisk, посоветуйте.
Я использую Blind Transfer кнопкой '#'. Ну, есть аналоговые телефоны, да и домочадцам так понятнее.
Родная астерисковая тетенька после нажатия кнопки вещает "Transfer", что напрягает. Хочется сразу перевести звонок, а сделать это возможно только когда появится гудок, то есть договорит свою коронную фразу тетенька. Проблема в том, что я не нашел как можно отключить вот это:
Playing 'pbx-transfer.alaw'
Как временный выход:
cp /dev/null pbx-transfer.alaw
Работает, но так, извините, культурные, интеллигентные и цивилизованные люди не поступают. Так ведь можно и черту переступить, сойти с пути праведного. Потом ведь обратной дороги уже не будет...
А как иначе?

stpavel
Сообщения: 75
Зарегистрирован: 08 апр 2011, 18:43

Re: Asterisk дома

Сообщение stpavel » 18 ноя 2011, 14:54

Andrey_B писал(а): Хочется сразу перевести звонок, а сделать это возможно только когда появится гудок, то есть договорит свою коронную фразу тетенька. Проблема в том, что я не нашел как можно отключить вот это:
Playing 'pbx-transfer.alaw'
Как временный выход:
cp /dev/null pbx-transfer.alaw
Работает, но так, извините, культурные, интеллигентные и цивилизованные люди не поступают. Так ведь можно и черту переступить, сойти с пути праведного. Потом ведь обратной дороги уже не будет...
А как иначе?
Андрей, думаю без изменения исходников никак :
main/features.c:

Код: Выделить всё

static int builtin_blindtransfer(struct ast_channel *chan, struct ast_channel *peer, struct ast_bridge_config *config, const char *code, int sense, void *data)
{
        .............
        /* Transfer */
        res = ast_stream_and_wait(transferer, "pbx-transfer", AST_DIGIT_ANY);
        if (res < 0) {
                finishup(transferee);
                return -1; /* error ? */
        }
   ...............
Другой вопрос, почему у Вас приходится ждать гудка. Перевод звонка работает сразу же , не нужно ожидать что там проговорит тетенька, просто набираете #номер абонента# и звонок сразу же уходит кому нужно.

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Asterisk дома

Сообщение Andrey_B » 18 ноя 2011, 15:11

Этот исходник я, естественно, видел. Но править исходники постоянно развивающегося проекта еще более паршивое занятие. ;)
А вот у меня пока не появится гудок, перевод не срабатывает. Может, пора версию менять? У меня 1.8.3.3
Особенно чувствительно это в отношении калитки. Когда нужно нажать #0 для того, чтобы открыть электромеханический замок. Сначала часто бывали ситуации, когда нажимаешь быстро #0, связь с домофоном хэнгапится, а замок не срабатывает, так как тетенька еще не договорила. Когда обнулил файл, стало работать как надо.
Кстати, а какой командой можно вернуть звонок? То есть "0" у меня - это system(открыть замок). Как прописать, чтобы в случае, если звонок был переведен, а не набран напрямую, после system() звонок снова уходил на телефон, с которого переводили?

Mixman
Сообщения: 395
Зарегистрирован: 17 фев 2013, 23:49
Откуда: Волгодонск, Ростовская обл.
Контактная информация:

Re: Asterisk дома

Сообщение Mixman » 05 июл 2013, 10:01

Установлен Asterisk 1.8 и SipToSis (20111012).
При звонке на домашний Skype идет перевод на аналоговый тел через TDM410P. И аппарат через определитель CallerID показывает New User, а хотелось бы логин звонящего видеть. При звонках через 3G на него же номер определяется как надо. А у вас определяется скайп?

----
upd 09-07-2013
Разобрался. Надо было в завершении настроек перезагрузить комп, а я всего лиim перезагружал астериск.

lion_sm
Сообщения: 49
Зарегистрирован: 19 ноя 2013, 19:07

Re: Паскаль

Сообщение lion_sm » 28 ноя 2013, 10:12

Вдруг кому пригодится.

По записи голосовых приветствий, анонсов, оповещений в свое время помучался с записью с микрофона, и подсовыванием Asterisk`у. По качеству записи удовлетворения не было. Затратно по обработке.

В итоге родился такой код для записи голоса с трубки телефонного SIP-аппарата. Качество, на удивление, оказалось вполне приемлимым
extension.conf:

Код: Выделить всё

[func_anounce_recording]
exten => _03X,1,Wait(2)
exten => _03X,n,Record(/tmp/${EXTEN}/rec${EXTEN:2}:wav)
exten => _03X,n,Wait(1)
exten => _03X,n,Playback(/tmp/${EXTEN}/rec${EXTEN:2})
exten => _03X,n,Wait(2)
exten => _03X,n,Hangup()
exten => _04X,1,Wait(2)
exten => _04X,n,Playback(beep);
exten => _04X,n,Set(Fl=$[${EXTEN}-10])
exten => _04X,n,Playback(/tmp/${Fl}/rec${Fl:2})
exten => _04X,n,Playback(beep);
exten => _04X,n,Wait(2)
exten => _04X,n,Hangup()
Отладочный скрипт для ловли DTMF

Код: Выделить всё

exten => 088,1,Goto(DTMF,s,1,tT)
[DTMF]
exten => s,1,Answer
exten => s,n,Set(CHANNEL(language)=ru)
exten => s,n,Playback(nomer)
exten => s,n,Playback(beep);
exten => s,n,Read(enteredValue);
exten => s,n,Playback(beep);
exten => s,n,NoOp(--- You entered: ${enteredValue} ---);
exten => s,n,Set(CHANNEL(language)=ru)
exten => s,n,SayDigits(${enteredValue});
exten => s,n,Wait(0.3)
exten => s,n,Playback(beep);
exten => s,n,Wait(3)
exten => s,n,HangUp();

vtec
Сообщения: 459
Зарегистрирован: 19 сен 2011, 09:28

Re: Asterisk дома

Сообщение vtec » 28 ноя 2013, 12:21

А что, разве нельзя записать на компе через что угодно и сконвертировать в формат для астерикса и подсунуть?

lion_sm
Сообщения: 49
Зарегистрирован: 19 ноя 2013, 19:07

Re: Asterisk дома

Сообщение lion_sm » 28 ноя 2013, 12:45

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

А если еще что-то не понравилось, снова проходить квест.
Или нажать 3 кнопки, сказать фразу в трубку, готовый файл в родном формате астера положить в желаемое место.
Имхо.

Mixman
Сообщения: 395
Зарегистрирован: 17 фев 2013, 23:49
Откуда: Волгодонск, Ростовская обл.
Контактная информация:

Re: Asterisk дома

Сообщение Mixman » 05 дек 2013, 11:39

Как сделать, чтобы после соединения выполнялась следующая строка? Мне нужно, чтобы после ответа обонента прошел удлиненный тональный сигнал.

exten => s,1,Dial(DAHDI/4)
exten => s,n,SendDTMF(#,1000,1000,DAHDI/4)

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Asterisk дома

Сообщение Andrey_B » 05 дек 2013, 12:06

Если я ничего не путаю, то при использовании аналоговых линий (POTS) Asterisk не имеет возможность детектировать ответ абонента ввиду отсутствия такой фичи в стандарте.
Кажется, платы TDM* умеют определять ответ абонента по изменению полярности (опция "answeronpolarityswitch=yes"), но работоспособность этой штуки целиком и полностью зависит от сервис-провайдера, то есть телефонной компании.

Mixman
Сообщения: 395
Зарегистрирован: 17 фев 2013, 23:49
Откуда: Волгодонск, Ростовская обл.
Контактная информация:

Re: Asterisk дома

Сообщение Mixman » 05 дек 2013, 13:05

Ну телефонная компания это есть я сам :)

Не знаю по какой технологии, но поднятие на том конце трубки (видимо установку соединения) обрабатывает нормально. Был такой экстейшн, но в нем не устраивает длина тонального сигнала. Надо длиннее, не переделывая общие.
exten => s,1,Dial(DAHDI/4,,D(##))

Может как-то макросы смогут обработать?

lion_sm
Сообщения: 49
Зарегистрирован: 19 ноя 2013, 19:07

Re: Asterisk дома

Сообщение lion_sm » 05 дек 2013, 13:22

Mixman, поможет макрос и анонс. При этом в линию проигрывается звук. Файл.
--
Дополнение. Выдержка из диалплана:

exten => s,n,Dial(${NEC}/${ARG3},20,ftTU(anounce))

[anounce]
exten => s,1,Set(CHANNEL(language)=ru)
exten => s,n,Playback(beep)
exten => s,n,Wait(0.3)
exten => s,n,Playback(beep)
exten => s,n,Return

andrey1509
Сообщения: 53
Зарегистрирован: 22 дек 2013, 13:14

Re: Asterisk дома

Сообщение andrey1509 » 22 дек 2013, 13:40

Доброе время суток
Не бейте сильно - имею плату TDM410 4FXO 1FSX, набор номера на сотовых операторов проходит нормально , при наборе межгорода нет , местная АТС на межгород требует паузу после 8-ки. Перерыл Googlу, обращался за помощью, вразумительного ответа ни кто не дает. Понимаю что необходимо прописать в файле extensions_custom.conf , но как это сделать не знаю, а в литературе найти не могу. Моя конфигурация - Asterisk 11.6.1, FreePBX 2.11, DAHDI Version: 2.8.0
Заранее благодарен всем кто откликнутся

lion_sm
Сообщения: 49
Зарегистрирован: 19 ноя 2013, 19:07

Re: Asterisk дома

Сообщение lion_sm » 22 дек 2013, 17:06

andrey1509, попробуй вот таким образом:

exten => _8ХХХХХХХХХХ,1,Dial(SIP/8,,D(${EXTEN:1:10}))

andrey1509
Сообщения: 53
Зарегистрирован: 22 дек 2013, 13:14

Re: Asterisk дома

Сообщение andrey1509 » 22 дек 2013, 18:08

lion_sm писал(а):andrey1509, попробуй вот таким образом:

exten => _8ХХХХХХХХХХ,1,Dial(SIP/8,,D(${EXTEN:1:10}))


я это понимаю вот только куда вставить ......
все дело в том что если я правлю extensions_additional.conf то после перезагрузки значения исчезают.
Понимаю что все крутится в трех файлах extensions.conf , extensions_additional.conf и extensions_custom.conf, но не могу ни где прочитать о том как это сделать?
С англицким не очень

lion_sm
Сообщения: 49
Зарегистрирован: 19 ноя 2013, 19:07

Re: Asterisk дома

Сообщение lion_sm » 22 дек 2013, 21:02

andrey1509
это нужно вставить в основной файл: extensions.conf
в блок исходящих вызовов. после этого перезагрузить диалплан (в консоли астериска: dialplan reload)

lion_sm
Сообщения: 49
Зарегистрирован: 19 ноя 2013, 19:07

Re: Asterisk дома

Сообщение lion_sm » 22 дек 2013, 21:04

кстати, это как раз тот случай, когда только консоль, только хардкор
без внешних надстроек и оболочек :)

Ответить