<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: 'Calibri'; COLOR: #000000"><D
IV>Hello;</DIV><D IV></DIV><D IV>I am trying to build a prepaid accounting
system. I use dialog module's
<DIV></DIV><D IV>start/end event-route. When even_route[dialog:started]
triggered, a
<DIV></DIV><D IV>http_query works for the started call. When
event_route[dialog:end] triggered , a
<DIV></DIV><D IV>http_query works for call is ended. When http_query works
in
<DIV></DIV><D IV>event_route[dialog:started], i get some CRITICAL ERROR like
<DIV></DIV><D IV>'Aug 12 12:16:09 /usr/local/sbin/kamailio[10151]:
CRITICAL: dialog
<DIV></DIV><D IV>[dlg_timer.c:205]: update_dlg_timer(): Trying to update a bogus
dlg
<DIV></DIV><D IV>tl=0x7f7634d925d8 tl->next=(nil) tl->prev=(nil)'
<DIV></DIV><D IV>'Aug 12 12:16:09 /usr/local/sbin/kamailio[10151]:
ERROR: dialog
<DIV></DIV><D IV>[dlg_handlers.c:1263]: dlg_onroute(): failed to update dialog
lifetime'
<DIV></DIV><D IV>Http_query works very well. I can get all call information on
Web
<DIV></DIV><D IV>Servers but default_time out or other timeout isn't working.
<DIV></DIV><D IV>
<DIV></DIV><D IV>After i commented out http_query in event_route[dialog:started]
, it stopped giving
<DIV></DIV><D IV>ERROR but i realized that dialog cannot uptade dialog hash map
.I can see all finished call with "kamctl dialog show". After i closed
<DIV></DIV><D IV>http_query in even_route[dialog:end] , all problems are solved.
<DIV></DIV><D IV>I think a problem occured between http_query and dialog
event_routes.It
<DIV></DIV><D IV>cannot control dialog lifetime.Any idea about this problem or
suggest an alternative way will be appreciated.My configuration is as follows.
<DIV></DIV><D IV>
<DIV></DIV><D IV>Best Regards
<DIV></DIV><D IV>Betül.
<DIV></DIV><D IV>
<DIV></DIV><D IV>#---------------- dialog params -------------
<DIV></DIV><D IV>#!ifdef WITH_DIALOG
<DIV></DIV><D IV>modparam("dialog", "enable_stats", 1)
<DIV></DIV><D IV>modparam("dialog", "hash_size", 8192)
<DIV></DIV><D IV>modparam("dialog", "rr_param", "did")
<DIV></DIV><D IV>modparam("dialog", "dlg_flag",4)
<DIV></DIV><D IV>modparam("dialog", "timeout_avp", "$avp(i:10)")
<DIV></DIV><D IV>modparam("dialog", "dlg_match_mode", 1)
<DIV></DIV><D IV>modparam("dialog", "default_timeout", 3600)
<DIV></DIV><D IV>modparam("dialog", "detect_spirals", 1)
<DIV></DIV><D IV>modparam("dialog", "profiles_with_value", "userid ; opkodu ;
useropkodu ")
<DIV></DIV><D IV>modparam("dialog", "dlg_extra_hdrs", "Hint: Hell Yeah\r\n")
<DIV></DIV><D IV>modparam("dialog", "send_bye", 1)
<DIV></DIV><D IV>#!endif
<DIV></DIV><D IV>
<DIV></DIV><D IV>route[CHCK_DLG]{
<DIV></DIV><D IV>
<DIV></DIV><D IV>xlog("L_INFO","DLG:AVP=>
:>:$avp(i:77):$avp(op_kodu):$avp(i:69) ");
<DIV></DIV><D IV>
<DIV></DIV><D
IV>
$dlg_ctx(timeout_bye)=1;
<DIV></DIV><D
IV>
$avp(unique_id)=$sruid;
<DIV></DIV><D IV>
<DIV></DIV><D
IV>
/* Time out suresi i:10 konusabilecegi sure saniye */
<DIV></DIV><D
IV>
$avp(i:10)=0;
<DIV></DIV><D
IV>
$avp(i:10)=(int)$avp(i:77);
<DIV></DIV><D
IV>
#$avp(i:10)=10;
<DIV></DIV><D
IV>
$dlg_ctx(timeout_route)=33;
<DIV></DIV><D
IV>
$dlg_var(uniqueid)=$avp(unique_id);
<DIV></DIV><D
IV>
$dlg_var(userid)=$avp(userid);
<DIV></DIV><D
IV>
$dlg_var(opkodu)=$avp(op_kodu);
<DIV></DIV><D IV>
<DIV></DIV><D IV>
<DIV></DIV><D
IV>
set_dlg_profile("userid","$avp(userid)");
<DIV></DIV><D
IV>
set_dlg_profile("opkodu","$avp(op_kodu)");
<DIV></DIV><D IV>set_dlg_profile("useropkodu","$avp(userid):$avp(op_kodu)");
<DIV></DIV><D IV>
<DIV></DIV><D IV>
<DIV></DIV><D IV>if(get_profile_size("useropkodu","$avp(d_user_opkodu)")){
<DIV></DIV><D IV>xlog("L_INFO","Userid_Size:$avp(d_user_opkodu) kk :
<DIV></DIV><D IV>$avp(userid):$avp(op_kodu) ");
<DIV></DIV><D
IV>xlog("L_INFO","Userid_Limit:$sht(sayac=>$avp(userid):$avp(op_kodu))");
<DIV></DIV><D IV>
<DIV></DIV><D
IV>if(!($sht(sayac=>$avp(userid):$avp(op_kodu))>$avp(d_user_opkodu))){
<DIV></DIV><D IV>sl_send_reply("403","Kapasite Asildi.");
<DIV></DIV><D
IV>
exit;
<DIV></DIV><D
IV>
}
<DIV></DIV><D
IV>
}
<DIV></DIV><D IV>
<DIV></DIV><D
IV>
dlg_manage();
<DIV></DIV><D IV>
<DIV></DIV><D IV> return;
<DIV></DIV><D IV>}
<DIV></DIV><D IV>
<DIV></DIV><D IV>
<DIV></DIV><D IV>
<DIV></DIV><D IV>event_route[dialog:start]{
<DIV></DIV><D
IV>xlog("L_ALERT","START:CI:$dlg(callid):u_id:$dlg_var(uniqueid):U_id:$dlg_var(userid)
<DIV></DIV><D IV>");
<DIV></DIV><D
IV>xlog("L_ALERT","START:lifetime:$avp(i:10):opkodu:$dlg_var(opkodu):$avp(aranan)"
<DIV></DIV><D IV>);
<DIV></DIV><D IV>
<DIV></DIV><D IV>#!ifdef WITH_UTILS
<DIV></DIV><D IV>$var(http_res)=http_query("<A
href="http://bla.com/somestuff.php?userid=">http://bla.com/somestuff.php?userid=</A>$avp(userid)&aranan=$avp(aranan)&callid=$ci&uniqueid=$dlg_var(uniqueid)&lifetime=$avp(i:10)&opkodu=$dlg_var(opkodu)","$var(result)");
<DIV></DIV><D IV>
<DIV></DIV><D IV>
if($var(http_res)=="200"){
<DIV></DIV><D
IV>
json_get_field("$var(result)","sonuc","$var(snc)");
<DIV></DIV><D IV>json_get_field("$var(result)","yorum","$var(yorum)");
<DIV></DIV><D IV>json_get_field("$var(result)","yorum","$var(debug)");
<DIV></DIV><D
IV>
if($var(snc)!=200){
<DIV></DIV><D
IV>xlog("L_ERR","START:CI:$ci:Sonuc:$var(snc):Yorum:$var(yorum):Debug:$var(debug)");
<DIV></DIV><D
IV>
}else{
<DIV></DIV><D IV>xlog("L_INFO","START:CI:$ci:Sonuc:$var(snc)");
<DIV></DIV><D
IV>
}
<DIV></DIV><D IV> }else{
<DIV></DIV><D IV>xlog("L_ERR","START:CI:$ci:HTTP_RESULT:$var(http_res)");
<DIV></DIV><D IV> }
<DIV></DIV><D IV>#!endif
<DIV></DIV><D IV>}
<DIV></DIV><D IV>
<DIV></DIV><D IV>
<DIV></DIV><D IV>
<DIV></DIV><D IV>
<DIV></DIV><D IV>event_route[dialog:end]{
<DIV></DIV><D IV>
<DIV></DIV><D IV>
xlog("L_ALERT","END
<DIV></DIV><D IV>:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:");
<DIV></DIV><D IV>xlog("L_ALERT","END:CI:$ci:START_TIME:$dlg(start_ts):NOW:$TS");
<DIV></DIV><D IV>
$var(billsec)=$TS-$dlg(start_ts);
<DIV></DIV><D IV>
xlog("L_ALERT","END:SURE : $var(billsec): u_id:
<DIV></DIV><D IV>$dlg_var(uniqueid):code:$T_reply_code:$DLG_status ");
<DIV></DIV><D
IV>xlog("L_ALERT","END:U_ID:$dlg_var(userid):O_Kodu:$dlg_var(opkodu):");
<DIV></DIV><D IV>
<DIV></DIV><D IV>
if($var(billsec)<0){
<DIV></DIV><D
IV>
$var(billsec)=$DLG_lifetime;
<DIV></DIV><D
IV>
xlog("L_ERR","START:CI:$ci:Billsec Negatif geldi :
<DIV></DIV><D IV>lifetime alinacak:$DLG_lifetime");
<DIV></DIV><D IV> }
<DIV></DIV><D IV>
<DIV></DIV><D IV>
<DIV></DIV><D IV>#!ifdef WITH_UTILS
<DIV></DIV><D IV>
<DIV></DIV><D IV>$var(http_res)=http_query("<A
href="http://bla.com/somestuff.php?uniqueid=">http://bla.com/somestuff.php?uniqueid=</A>$dlg_var(uniqueid)&billsec=$var(billsec)","$var(result)");
<DIV></DIV><D IV>
<DIV></DIV><D IV>
if($var(http_res)=="200"){
<DIV></DIV><D
IV>
json_get_field("$var(result)","sonuc","$var(snc)");
<DIV></DIV><D IV>json_get_field("$var(result)","yorum","$var(yorum)");
<DIV></DIV><D IV>json_get_field("$var(result)","yorum","$var(debug)");
<DIV></DIV><D
IV>
if($var(snc)!=200){
<DIV></DIV><D
IV>xlog("L_ERR","START:CI:$ci:Sonuc:$var(snc):Yorum:$var(yorum):Debug:$var(debug)");
<DIV></DIV><D
IV>
}
<DIV></DIV><D IV> }else{
<DIV></DIV><D IV>xlog("L_ERR","START:CI:$ci:HTTP_RESULT:$var(http_res)");
<DIV></DIV><D IV> }
<DIV></DIV><D IV>#!endif
<DIV></DIV><D IV>
xlog("L_ALERT","END
<DIV></DIV><D IV>:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:");
<DIV></DIV><D IV>}
<DIV></DIV><D style="FONT-SIZE: 12pt; FONT-FAMILY: 'Calibri'; COLOR: #000000"
IV>
<DIV></DIV>
<DIV></DIV>
<DIV></DIV></BODY></HTML>