Многие поля в mysql являются readonly до завершения транзакции. Это значит, что мы не можем их переписывать по своему усмотрению пока звонок не завершился.
В примере "идеального" звонка видим, что в поле exten записываются разные значения на каждом шаге - events. Какое из них будет полезным для вашего отчёта? Наверное 112233, eventtype=CHAN_START ?
Yessey писал(а):Также попробовал записать извлеченный из SIP_Header номер DID в пользовательское событие:
exten => _.,n,CELGenUserEvent(customdid, exten=${pseudodid})
Также не получилось, может быть неправильно описываю функцию ?
 Как минимум - AFAIK, нет такого эвента - customdid, и после запятой туда пойдёт именно текст =  exten=${pseudodid}
Может посмотрите примеры в cel_custom.conf.sample?
Не хочу вас запутать, но если бы вы посмотрели прохождение входящего вызова диал-плана
Код: Выделить всё
*CLI> dialplan show ext-did
[ Context 'ext-did' created by 'pbx_config' ]
  'foo' =>          1. Noop(bar)                                  [pbx_config]
  Include =>        'ext-did-custom'                              [pbx_config]
  Include =>        'ext-did-0001'                                [pbx_config]
  Include =>        'ext-did-0002'  
можно было увидеть что DID записывается в переменную FROM_DID
Set(__FROM_DID=${EXTEN})
В вашем случае пред-обработка будет 
Set(__FROM_DID=${SIP_HEADER(To):1:12})
и это будет уже как минимум правильно отображаться в журнале CDR. Так можно и до CEL доковырять.