Блог bitmanager

Asterisk как способ съесть мозг чайной ложкой

Чем опытнее становишься, тем мозголомнее проблемы попадаются. А Asterisk с мегатоннами настроек вообще сказка.

Обратился к нам клиент со странной проблемой — иногда после звонка некоторые агенты в очереди его call-центра переставали принимать звонки. Все, как всегда. началось со сбора статистической информации и выявления закономерностей. И вот что удалось выяснить:
  1. На сервере залип фантомный процесс, который периодически дергал базу, заставляя ее страдать.
  2. Некоторые медленные клиенты с qualify под сотню при sip reload отваливались от АТС.
  3. Прекращению приема звонков предшествовал трансфер. Но не всегда.
  4. Судя по логу queue_log очередь не снимала агента с паузы.

Никакой общности в том, что происходило и рядом не было. Как впоследствии оказалось, только последняя причина косвенно указывала на проблему. А именно — проблемы с device state, который очередь не всегда корректно определяла. А самое интересное, что лечится (возможно лечится, время покажет) это одной настройкой в sip.conf. Причем FreePBX сует эту настройку в неправильное место, дополнительно вводя в заблуждение. Вот эта таинственная строчка: callcounter=yes. Как она связана с очередями и агентами? Не знаю, шаманизм, не иначе.

Фантомный процесс тоже добавил веселья, но вылечился банальной перезагрузкой. А вот медленные клиенты еще ждут своего часа. Есть в bugtracker Asterisk похожий по описанию баг. А, значит, точите ножи, будем резать по живому.
Записки сисадмина ip-телефония