По мотивам очередного форумного топика. При выполнении вызовов через каналы самых различных типов, бывает полезно вовремя узнать о сбоях того или иного типа вовремя и устранить причину сбоя.
Каждый драйвер канала по окончанию звонка имеет собственный код причины окончания вызова, он преобразуется в Q.931 код, которым оперирует ядро астериска и приложение Dial. Код сохраняется в переменную HANGUPCAUSE, так же Dial формирует переменную DIALSTAUS, в которой сохраняется ограниченное количество статусов, достаточное в обычной ситуации (звонок завершен нормально, занято, таймаут вызова или канал не доступен).