AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

При загрузке админского интерфейса: Connection failed

Биллинг 37 сообщений 18.06.2007 11:47 - 28.08.2007 09:20
#1

Помогите пожалуйста разобраться, не получается пропустить звонок через a2billing. Номер набираю и сразу сбрасывает. Звоню софтфоном.
В логе пишет:
[Sep 7 11:32:58] NOTICE[1334] cdr.c: CDR simple logging enabled.
[Sep 7 11:32:58] NOTICE[1334] loader.c: 137 modules will be loaded.
[Sep 7 11:32:58] WARNING[1334] res_smdi.c: No SMDI interfaces are available to listen on, not starting SDMI listener.
[Sep 7 11:32:58] NOTICE[1334] pbx_ael.c: Starting AEL load process.
[Sep 7 11:32:58] NOTICE[1334] pbx_ael.c: AEL load process: calculated config file name '/etc/asterisk/extensions.ael'.
[Sep 7 11:32:58] WARNING[1334] ael.y: ==== File: /etc/asterisk/extensions.ael, Line 112, Cols: 34-34: Warning! The empty context ael-dundi-e164-canonical will be IGNORED!
[Sep 7 11:32:58] WARNING[1334] ael.y: ==== File: /etc/asterisk/extensions.ael, Line 120, Cols: 34-34: Warning! The empty context ael-dundi-e164-customers will be IGNORED!
[Sep 7 11:32:58] WARNING[1334] ael.y: ==== File: /etc/asterisk/extensions.ael, Line 128, Cols: 33-33: Warning! The empty context ael-dundi-e164-via-pstn will be IGNORED!
[Sep 7 11:32:58] NOTICE[1334] pbx_ael.c: AEL load process: parsed config file name '/etc/asterisk/extensions.ael'.
[Sep 7 11:32:58] WARNING[1334] pbx_ael.c: Warning: file /etc/asterisk/extensions.ael, line 141-145: The included context 'ael-dundi-e164-canonical' cannot be found.
[Sep 7 11:32:58] WARNING[1334] pbx_ael.c: Warning: file /etc/asterisk/extensions.ael, line 141-145: The included context 'ael-dundi-e164-customers' cannot be found.
[Sep 7 11:32:58] WARNING[1334] pbx_ael.c: Warning: file /etc/asterisk/extensions.ael, line 141-145: The included context 'ael-dundi-e164-via-pstn' cannot be found.
[Sep 7 11:32:58] WARNING[1334] pbx_ael.c: Warning: file /etc/asterisk/extensions.ael, line 276-283: The included context 'ael-parkedcalls' cannot be found.
[Sep 7 11:32:58] NOTICE[1334] pbx_ael.c: AEL load process: checked config file name '/etc/asterisk/extensions.ael'.
[Sep 7 11:32:58] NOTICE[1334] pbx_ael.c: AEL load process: compiled config file name '/etc/asterisk/extensions.ael'.
[Sep 7 11:32:58] NOTICE[1334] pbx_ael.c: AEL load process: merged config file name '/etc/asterisk/extensions.ael'.
[Sep 7 11:32:58] WARNING[1334] pbx.c: Context 'ael-local' tries includes nonexistent context 'ael-parkedcalls'
[Sep 7 11:32:58] WARNING[1334] pbx.c: Context 'ael-dundi-e164-local' tries includes nonexistent context 'ael-dundi-e164-canonical'
[Sep 7 11:32:58] WARNING[1334] pbx.c: Context 'ael-dundi-e164-local' tries includes nonexistent context 'ael-dundi-e164-customers'
[Sep 7 11:32:58] WARNING[1334] pbx.c: Context 'ael-dundi-e164-local' tries includes nonexistent context 'ael-dundi-e164-via-pstn'
[Sep 7 11:32:58] NOTICE[1334] pbx_ael.c: AEL load process: verified config file name '/etc/asterisk/extensions.ael'.
[Sep 7 11:32:58] WARNING[1334] config.c: No '=' (equal sign) in line 566 of /etc/asterisk/extensions.conf
[Sep 7 11:32:58] WARNING[1334] config.c: No '=' (equal sign) in line 571 of /etc/asterisk/extensions.conf
[Sep 7 11:32:58] WARNING[1334] pbx.c: Context 'ael-local' tries includes nonexistent context 'ael-parkedcalls'
[Sep 7 11:32:58] WARNING[1334] pbx.c: Context 'ael-dundi-e164-local' tries includes nonexistent context 'ael-dundi-e164-canonical'
[Sep 7 11:32:58] WARNING[1334] pbx.c: Context 'ael-dundi-e164-local' tries includes nonexistent context 'ael-dundi-e164-customers'
[Sep 7 11:32:58] WARNING[1334] pbx.c: Context 'ael-dundi-e164-local' tries includes nonexistent context 'ael-dundi-e164-via-pstn'
[Sep 7 11:32:58] NOTICE[1357] chan_sip.c: Peer '6621359455' is now Reachable. (1ms / 2000ms)
[Sep 7 11:32:58] NOTICE[1357] chan_sip.c: Peer '9117497474' is now Reachable. (1ms / 2000ms)
[Sep 7 11:33:24] NOTICE[1357] chan_sip.c: Peer '9117497474' is now Reachable. (55ms / 2000ms)
#2

а вы используете AEL? если нет - рекомендую его модуль отключить в modules.conf
_________________
Успехов!
#3

Отключил этот модуль, теперь в логе почище стало, теперь вот так:

[Sep 7 16:29:53] NOTICE[3160] cdr.c: CDR simple logging enabled.
[Sep 7 16:29:53] NOTICE[3160] loader.c: 136 modules will be loaded.
[Sep 7 16:29:53] WARNING[3160] res_smdi.c: No SMDI interfaces are available to listen on, not starting SDMI listener.
[Sep 7 16:29:53] NOTICE[3183] chan_sip.c: Peer '9117497474' is now Reachable. (1ms / 2000ms)
[Sep 7 16:30:16] NOTICE[3183] chan_sip.c: Peer '9117497474' is now Reachable. (9ms / 2000ms)

Но звонок все равно не идет. Уже не знаю чего и делать. А почему нет лога самого биллинга, в настройках он прописан a2billing_agi.log, но файл пустой.
#4

а где в этом логе что вы привели - вообще обращение к a2b? вы его видите? я лично нет.
что в секции [a2billing] в extensions.conf у вас? что в sip.conf в секции [9117497474] (или что там у вас)?

_________________
Успехов!
#5

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

Added after 4 minutes:

В extensions.conf:

[a2billing]
exten=>_X.,1,Answer
exten=>_X.,2,Wait,2
enten=>_X.,3,DeadAGI(a2billing.php|1)
exten=>_X.,4,Wait,2
exten=>_X.,5,Hangup

В sip.conf: #include additional_a2billing_sip.conf

В additional_a2billing_sip.conf:

[9117497474]
type=friend
username=9117497474
accountcode=9117497474
regexten=9117497474
callerid=803897777795920
amaflags=billing
secret=1119159779
nat=no
dtmfmode=RFC2833
qualify=yes
canreinvite=yes
disallow=all
allow=ulaw
allow= alaw
allow= gsm
allow= g729
host=dynamic
context=a2billing
regseconds=0
cancallforward=yes

[6621359455]
type=friend
username=6621359455
accountcode=6621359455
regexten=6621359455
callerid=149593688993106
amaflags=billing
secret=6006996399
nat=no
dtmfmode=RFC2833
qualify=yes
canreinvite=yes
disallow=all
allow=ulaw
allow= alaw
allow= gsm
allow= g729
host=dynamic
context=a2billing
regseconds=0
cancallforward=yes
#6

в конфигах все выглядит нормально.
теперь лог с консоли в момент звонка плыз. подсказка - там должны присутствовать строки
Код:
Answer
Wait,2
DeadAGI(a2billing.php|1)

и тд...

_________________
Успехов!
#7

Звоню на 6621359455, лог:

-- Executing [6621359455@a2billing:1] Answer("SIP/9117497474-40800490", "") in new stack
-- Executing [6621359455@a2billing:2] Wait("SIP/9117497474-40800490", "2") in new stack
== Auto fallthrough, channel 'SIP/9117497474-40800490' status is 'UNKNOWN'
#8

я не вижу вызова скрипта. может его вовсе нет?
_________________
Успехов!
#9

Ну да вроде нет обращения. Непонятно почему, в конфиге вроде прописан вызов.

Added after 7 minutes:

Скрипт лежит в /var/lib/asterisk/agi-bin/. Папка libs_a2billing тоже там лежит, а в ней phpagi. Вроде всё есть
#10

Он как-то неправильно отрабатывает Answer.

В extensions.conf оставляю только:
[a2billing]
exten=>_X.,1,Answer

Лог в итоге:
-- Executing [6621359455@a2billing] Answer("SIP/9117497474-081d0520", "") in new stack
== Auto fallthrough, channel 'SIP/9117497474-081d0520' status is 'UNKNOWN'

Что означает последняя строка и почему она появляется?

Added after 1 hours 14 minutes:

В extensions.conf делаю так (вместо порядка 1,2,3,4,5 поставил 1,n...):

[a2billing]
exten=> _X.,1,Answer
exten=> _X.,n,Wait,2
enten=> _X.,n,AGI(a2billing.php|1)
exten=> _X.,n,Wait,2
exten=> _X.,n,Hangup

В результате лог такой:

-- Executing [6621359455@a2billing:1] Answer("SIP/9117497474-081d04f8", "") in new stack
-- Executing [6621359455@a2billing:2] Wait("SIP/9117497474-081d04f8", "2") in new stack
-- Executing [6621359455@a2billing:3] Wait("SIP/9117497474-081d04f8", "2") in new stack
-- Executing [6621359455@a2billing:4] Hangup("SIP/9117497474-081d04f8", "") in new stack
== Spawn extension (a2billing, 6621359455, 4) exited non-zero on 'SIP/9117497474-081d04f8'



Если в extensions.conf сделать так:

[a2billing]
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,AGI(a2billing.php|1)
exten => s,n,Hangup
exten => s,n,Waitexten
exten=> _X.,1,Goto(s,1)

то лог будет такой:

-- Executing [6621359455@a2billing:1] Goto("SIP/9117497474-081cea88", "s|1") in new stack
-- Goto (a2billing,s,1)
-- Executing [s@a2billing:1] Answer("SIP/9117497474-081cea88", "") in new stack
-- Executing [s@a2billing:2] Wait("SIP/9117497474-081cea88", "1") in new stack
-- Executing [s@a2billing:3] AGI("SIP/9117497474-081cea88", "a2billing.php|1") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/a2billing.php
-- AGI Script a2billing.php completed, returning 0
-- Executing [s@a2billing:4] Hangup("SIP/9117497474-081cea88", "") in new stack
== Spawn extension (a2billing, s, 4) exited non-zero on 'SIP/9117497474-081cea88'


НО всё равно звонок не идет.
#11

vitaliks писал(а):
НО всё равно звонок не идет.

а теперь включить дебаг в конфиге a2b на высший уровень и лог приаттачить сюда

_________________
Успехов!
#12

Поставил ему дебаг all, но лог пустой. Я смотрег лог в /tmp/a2billing_agi.log
Или нужно другой какой-то глянуть, так вроде везде посмотрел нет нигде ничего.
#13

Неужели нельзя никак посматреть что же скрипт делает и почему дает отказ?
#14

проверьте пермиты на файлы логов, проверьте пути к ним в конфиге a2b, добейтесь чтобы логи начали писаться, сделать звонок и лог приаттачить сюда.
_________________
Успехов!
#15

Пермиты в порядке, сделал для всех файлов 777. Пути тоже посмотрел, всё нормально, но вот логи пустые. Астериск запускаю от рута. Просматрел форум разработчиков, там встречаются логи с консоли, так вот там идет так:
-- Executing [8890056257@a2billing:1] Answer("SIP/2278614296-09503078", "") in new stack
-- Executing [8890056257@a2billing:2] Wait("SIP/2278614296-09503078", "2") in new stack
-- Executing [8890056257@a2billing:3] DeadAGI("SIP/2278614296-09503078", "a2billing.php") in new stack
[Sep 12 11:39:46] WARNING[7765]: res_agi.c:2089 deadagi_exec: Running DeadAGI on a live channel will cause problems, please use AGI
-- Launched AGI Script /var/lib/asterisk/agi-bin/a2billing.php
a2billing.php: A2Billing AGI internal configuration:
a2billing.php: Array
a2billing.php: (
a2billing.php: [debug] => 1
a2billing.php: [asterisk_version] => 1_4
a2billing.php: [answer_call] => 1
a2billing.php: [play_audio] => 1
.................
-- AGI Script a2billing.php completed, returning 0

Т.е. видно, что скрипт исполняется, считывает переменные и т.д., а у меня то он ничего не пишет, может поэтому и логи пустые?
#16

Поставил всё с нуля на Slackware 12. Теперь при загрузке админского web-интерфейса появляется ошибка: Connection failed и всё на этом останавливается. Проверил лог apatche там следующая инфа: PHP Notice: Undefined index: admin_id in /var/www/htdocs/a2b/lib/defines.php on line 237. Из за чего такое происходит?
#17

vitaliks писал(а):
PHP Notice: Undefined index: admin_id in /var/www/htdocs/a2b/lib/defines.php on line 237

Такое замечание не влияет как-либо значимо на выполнение скрипта, просто используется неинициализированная переменная где-то. Может неправильно указаны параметры для присоединения к БД?

_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
#18

В том то и дело, что, как оказывается, влияет: попробовал закоментировать эту строку в defines.php и морда для ввода логина и пароля появилась, но при их вводе он запарывается на другом скрипте. Мне кажется, что это PHP глючит или настройка какая-то должна быть произведена. А по поводу неправильной настройки конфига - это вряд ли т.к. конфиг я взял рабочий.
#19

vitaliks писал(а):
конфиг я взял рабочий.

тоесть предыдущий опыт (php-agi) ничему так и не научил?
ps: удалить ВСЁ, скачать пакет, развернуть и ВСЁ ставить из него! и agi и конфиги и тд и тп! по прилагаемой инструкции. если занимаетесь самодеятельностью - не жалуйтесь потом тут, всё очень просто.

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#20

Что значит удалить ВСЁ?
Я и так всё с нуля поставил, за исключением PHP и Apatche. Я же пишу, что поставил Slackware 12, на неё вкатал всё с нуля. Про конфиг могу сказать слудующее: я его и первый раз и в этот раз настроил по инструкции, поэтому я и написал, что конфиг взял рабочий.
Кстати поставил Fedora Core 7, поставил туда всё по инструкции и там тоже самое.
#21

тогда совет такой - снести всё (не линукс конечно а a2b и его конфиги/agi/etc) и поставить всё заново. очень внимательно сделать все шаги снова глядя в инструкцию.. иногда людям помогает иногда даже с третьего раза. главное терпение и упорство проявить и все получится.
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#22

Была такая же трабла. Поэтому могу сказать, что может и нет смысла все сносить и ставить по новой. Лично мне помогла проверка [database] в a2billing.conf


[database]
hostname=localhost // тут я поставил свой IP
port=5432
user=a2billinguser
password=a2billing
dbname=mya2billing
dbtype=postgres // а эту строку для пользователей mysql надо закоментить и соответственно добавить следующую:

dbtype=mysql
#23 18.06.2007 11:47

русский в A2BCustomer_UI


Привет всем!

радуйтесь! взял напильник - починил русский po/mo в a2b 1.2.3
единственная неприятность - обнаружил, что переведено далеко не все.. Sad
так что буду рад любой помощи в допереводе!
а если еще и админку переведем - будет совсем здорово.

сам большим кол-вом свободного времени не обладаю.. поэтому в одиночку буду делать довольно долго..

Олег

P.S. 1.3 не ставил, т.к. (1) бета и (2) видел, что русский там вообще исключен из дистрибута

ОБНОВЛЕНИЕ от 21.06.2007: Переведено все, что было возможно перевести. Непереведенные фразы либо отсутствуют в файле ресурса, либо появляются из-за неверной последовательности инклудов в коде (иногда еще просто ошибок в выборе фраз в gettext). В общем, выглядит все уже довольно приемлимо.
Ошибки, правки, пожелания - приветствуются!


Последний раз редактировалось: smolov (Чт Июн 21, 2007 9:47 am)
#24 18.06.2007 19:07

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

_________________
Успехов!
#25 18.06.2007 19:36

Спасибо за спасибо! Smile

Мне тоже английского хватает, но как показала практика - русский людям тоже нужен.

Я сейчас работаю над переводом оригинального en_US, т.к. он несколько отличается от русского варианта.
В принципе, основные фразы все перебрал, но надо еще окончания поправить, да и некоторые фразы уже в контексте посмотреть..
Думаю, к концу недели выложу черновой вариант на всеобщее обозрение и тестирование. А там и за админку можно будет браться.
Потом на 1.3 переключусь если разница будет существенная.

По поводу твоего вопроса: файлы эти (po/mo) довольно простые. PO - исходник. MO - его компилированная версия.
Обычно, достаточно определить правильно charset внутри PO заголовка, чтобы корректный MO получить, но в a2b несколько не так все работает, как оказалось.
PO должен быть обязательно в UTF-8 для русского + символы закодированы должны быть в HTML формате - &#;
Вот в этом случае все будет работать.

А по поводу MO: его автоматом генерит poEditor при сохранении PO, либо:

bash$ msgfmt -o

(под юниксом, в консоли)
#26 18.06.2007 19:55

спасиб. кстати в 1.3 уже везде UTF8 изначально. я в свое время настоял.
_________________
Успехов!
#27 17.07.2007 12:35

Цитата:
Думаю, к концу недели выложу черновой вариант на всеобщее обозрение и тестирование. А там и за админку можно будет браться.
Потом на 1.3 переключусь если разница будет существенная.

Есть ли сдвиги в сторону русификации 1.3.0?
#28 17.07.2007 15:53

SolarW писал(а):
Есть ли сдвиги в сторону русификации 1.3.0?


я не занимался.. что-то мало кто вообще поддержал

самое плохое, что на 1.3 мы пока не перешли
#29 17.07.2007 19:01

smolov писал(а):
SolarW писал(а):
Есть ли сдвиги в сторону русификации 1.3.0?


я не занимался.. что-то мало кто вообще поддержал

самое плохое, что на 1.3 мы пока не перешли
Я готов организавать надиктовку звуковых сообщений для а2б и астериска 1.4 женским голосом (есть сотрудница которую озадачу эти вопросом)
Единственно хотелось бы совместно перевести сообщения из а2б - мой "английский-со-словарем" неоднозначно понимает некоторые тамошние фразы...
#30 23.08.2007 08:23

anest писал(а):
спасиб. кстати в 1.3 уже везде UTF8 изначально. я в свое время настоял.


Вот такой в A2Billing Customer UTF8 Shocked

Код:
case "russian":
$languageEncoding = "ru_RU.iso88591";
$slectedLanguage = "ru_RU";
$charEncoding = "iso88591";
break;
#31 23.08.2007 09:25

а messages.po вообще в cp1251...
_________________
Everything over IP & IP over Everything
#32 23.08.2007 09:56

мдя...
_________________
Успехов!
#33 25.08.2007 09:41

Для себя проблему русификации я решил так:
в A2B_Customer_UI/lib/languageSettings.php поменял
Код:

case "russian":
$languageEncoding = "ru_RU.UTF-8";
$slectedLanguage = "ru_RU";
$charEncoding = "UTF-8";
break;

и как минимум setlocale(LC_MESSAGES, $slectedLanguage); поменять на setlocale(LC_MESSAGES, $languageEncoding);
хотя для себя я переписал этот кусочек так
Код:
@setlocale(LC_ALL,$languageEncoding);
putenv("LANG=$slectedLanguage");
putenv("LANGUAGE=$slectedLanguage");
$domain = 'messages';
bindtextdomain($domain, "./lib/locale");
textdomain($domain);
bind_textdomain_codeset($domain,$charEncoding);
define('CHARSET', $charEncoding);

Далее. Как я уже писал, meassages.po там на самом деле в кодировке cp1251.
Поэтому меняем кодировку и заново генерируем .mo файл:
Код:

iconv -f=WINDOWS-1251 -t=UTF-8 -o=temp.po messages.po
msgfmt -o messages.mo temp.po

У меня: A2billing 1.3.0, Debian etch, Apache2, php-5, везде UTF-8.
Использованные материалы:
http://php.russofile.ru/ru/translate/multilangual/php_gettext/
http://ru.php.net/manual/ru/function.gettext.php
В аттаче все это в готовом виде.

_________________
Everything over IP & IP over Everything
#34 25.08.2007 11:28

Спасибо!
Respect
ps: отправил письмо areski с cсылкой на ваш архив и с просьбой поправить.

_________________
Успехов!
#35 25.08.2007 22:36

Представляю вашему вниманию свою версию перевода a2b_customer_ui для 1.3.0.
messages.po из комплекта оказался очень кривой, не со всеми фразами, поэтому xgettext-ом по исходникам насобирал новый.

Подскажите как перевести буквосочетание "SR" ( form_data/FG_var_ratecard.inc:36 и A2B_entity_call_details_pdf.php:566,659); и как лучше перевести billed и unbilled?

Принимаются конструктивные предложения, исправления, уточнения и т.д.

И еще, в чем скрытый смысл наличия файлов CC_entity*.php? Насколько я понимаю, они не используются. Просто остались от предыдущих версий и их забыли удалить?

_________________
Everything over IP & IP over Everything
#36 28.08.2007 08:02

Спасибо за перевод!
Right Arrow Вот уточнения: ошибкa в меню "Симулятор": написано "Ввседите" вместо"Введите". В меню "Пароль" ошибка в слове "страницы". Должно быть "странице".
#37 28.08.2007 09:20

Поправил.

Added after 54 minutes:

Наброски перевода для голосовых сообщений карточной платформы.
Не совсем понятно как покорректнее перевести про SIP/IAX friends.

_________________
Everything over IP & IP over Everything