Lo que quieres hacer es mas una cuestion de dialplan de asterisk que funcionalidad en el fop2. El fop2 sin embargo tiene posibilidad de meterle hooks o ganchos para insertar comandos de manager frente a determinados comandos/eventos, pero hacer esto puede ser un poco complicado si no te das maña con asterisk mismo y/o con perl.
Y no sera sencillo porque tienes ese campo en una base que no es parte de asterisk en si mismo, quizas sea mas simple arreglarlo por dialplan.. si quieres probar, en /usr/local/fop2/FOP2Callbacks.pm deberas agregar un bloque en flashCommands para interceptar el comando dial:
} elsif($command eq "dial") {
...
...
}
Ahi le deberias poner que busque en la base de datos el cust_id en base al numero marcado, y que el resultado lo setee en la variable CDR(userfield) mediante el comando de manager SetVar. La cuestión es que es probable que el canal real no se cree al momento de interceptar el comando sino un ratito despues, cosa que complica las cosas y quizas hace inviable esto desde el fop2, al menos al interceptar el comando dial (ya que la originación se hace al recibir el mismo comando que estás interceptando).
Desde el dialplan se podria tambien consultar la base de datos del fop2 por el numero marcado y setear la variable desde alli, pero modificar el dialplan tampoco es algo simple, sobre todo si estas usando FreePBX, ya que deberías parchear FreePBX o tratar de arreglarte con los override/hooks que provee que no siempre son suficientes.
Saludos,