В логе пишет:
[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)
_________________
Успехов!
[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, но файл пустой.
что в секции [a2billing] в extensions.conf у вас? что в sip.conf в секции [9117497474] (или что там у вас)?
_________________
Успехов!
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
теперь лог с консоли в момент звонка плыз. подсказка - там должны присутствовать строки
| Код: |
| Answer Wait,2 DeadAGI(a2billing.php|1) |
и тд...
_________________
Успехов!
-- 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'
_________________
Успехов!
Added after 7 minutes:
Скрипт лежит в /var/lib/asterisk/agi-bin/. Папка libs_a2billing тоже там лежит, а в ней phpagi. Вроде всё есть
В 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'
НО всё равно звонок не идет.
| vitaliks писал(а): |
| НО всё равно звонок не идет. |
а теперь включить дебаг в конфиге a2b на высший уровень и лог приаттачить сюда
_________________
Успехов!
Или нужно другой какой-то глянуть, так вроде везде посмотрел нет нигде ничего.
_________________
Успехов!
-- 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
Т.е. видно, что скрипт исполняется, считывает переменные и т.д., а у меня то он ничего не пишет, может поэтому и логи пустые?
| 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
| vitaliks писал(а): |
| конфиг я взял рабочий. |
тоесть предыдущий опыт (php-agi) ничему так и не научил?
ps: удалить ВСЁ, скачать пакет, развернуть и ВСЁ ставить из него! и agi и конфиги и тд и тп! по прилагаемой инструкции. если занимаетесь самодеятельностью - не жалуйтесь потом тут, всё очень просто.
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
Я и так всё с нуля поставил, за исключением PHP и Apatche. Я же пишу, что поставил Slackware 12, на неё вкатал всё с нуля. Про конфиг могу сказать слудующее: я его и первый раз и в этот раз настроил по инструкции, поэтому я и написал, что конфиг взял рабочий.
Кстати поставил Fedora Core 7, поставил туда всё по инструкции и там тоже самое.
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
[database]
hostname=localhost // тут я поставил свой IP
port=5432
user=a2billinguser
password=a2billing
dbname=mya2billing
dbtype=postgres // а эту строку для пользователей mysql надо закоментить и соответственно добавить следующую:
dbtype=mysql
радуйтесь! взял напильник - починил русский po/mo в a2b 1.2.3
единственная неприятность - обнаружил, что переведено далеко не все..
так что буду рад любой помощи в допереводе!
а если еще и админку переведем - будет совсем здорово.
сам большим кол-вом свободного времени не обладаю.. поэтому в одиночку буду делать довольно долго..
Олег
P.S. 1.3 не ставил, т.к. (1) бета и (2) видел, что русский там вообще исключен из дистрибута
ОБНОВЛЕНИЕ от 21.06.2007: Переведено все, что было возможно перевести. Непереведенные фразы либо отсутствуют в файле ресурса, либо появляются из-за неверной последовательности инклудов в коде (иногда еще просто ошибок в выборе фраз в gettext). В общем, выглядит все уже довольно приемлимо.
Ошибки, правки, пожелания - приветствуются!
Последний раз редактировалось: smolov (Чт Июн 21, 2007 9:47 am)
на самом деле эта бэта довольно уже стабильна для продакшина
и русский там не исключен - он там есть, и как я понял - там в точности теже самые файлы и лежат, сам не ковырял так как хватает и английского - интерфейс не такой сложный чтобы клиенты не могли не разобраться куда мышой тыкать, но может кому действительно и будет полезным (уверен что будет).
кстати - не опишете процедуру компиляции этих двух файлов? давно хотел знать (но забывал спросить).
_________________
Успехов!
Мне тоже английского хватает, но как показала практика - русский людям тоже нужен.
Я сейчас работаю над переводом оригинального en_US, т.к. он несколько отличается от русского варианта.
В принципе, основные фразы все перебрал, но надо еще окончания поправить, да и некоторые фразы уже в контексте посмотреть..
Думаю, к концу недели выложу черновой вариант на всеобщее обозрение и тестирование. А там и за админку можно будет браться.
Потом на 1.3 переключусь если разница будет существенная.
По поводу твоего вопроса: файлы эти (po/mo) довольно простые. PO - исходник. MO - его компилированная версия.
Обычно, достаточно определить правильно charset внутри PO заголовка, чтобы корректный MO получить, но в a2b несколько не так все работает, как оказалось.
PO должен быть обязательно в UTF-8 для русского + символы закодированы должны быть в HTML формате -
Вот в этом случае все будет работать.
А по поводу MO: его автоматом генерит poEditor при сохранении PO, либо:
bash$ msgfmt -o
(под юниксом, в консоли)
_________________
Успехов!
| Цитата: |
| Думаю, к концу недели выложу черновой вариант на всеобщее обозрение и тестирование. А там и за админку можно будет браться. Потом на 1.3 переключусь если разница будет существенная. |
Есть ли сдвиги в сторону русификации 1.3.0?
| SolarW писал(а): |
| Есть ли сдвиги в сторону русификации 1.3.0? |
я не занимался.. что-то мало кто вообще поддержал
самое плохое, что на 1.3 мы пока не перешли
| smolov писал(а): | ||
| SolarW писал(а): |
| Есть ли сдвиги в сторону русификации 1.3.0? |
я не занимался.. что-то мало кто вообще поддержал
самое плохое, что на 1.3 мы пока не перешли
Я готов организавать надиктовку звуковых сообщений для а2б и астериска 1.4 женским голосом (есть сотрудница которую озадачу эти вопросом)
Единственно хотелось бы совместно перевести сообщения из а2б - мой "английский-со-словарем" неоднозначно понимает некоторые тамошние фразы...
| anest писал(а): |
| спасиб. кстати в 1.3 уже везде UTF8 изначально. я в свое время настоял. |
Вот такой в A2Billing Customer UTF8
| Код: |
| case "russian": $languageEncoding = "ru_RU.iso88591"; $slectedLanguage = "ru_RU"; $charEncoding = "iso88591"; break; |
_________________
Everything over IP & IP over Everything
_________________
Успехов!
в 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
ps: отправил письмо areski с cсылкой на ваш архив и с просьбой поправить.
_________________
Успехов!
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
Added after 54 minutes:
Наброски перевода для голосовых сообщений карточной платформы.
Не совсем понятно как покорректнее перевести про SIP/IAX friends.
_________________
Everything over IP & IP over Everything