Sorry for that. I believe that, dialplan misbehave only when you didn't get the result right?...then instead of below
exten=_XXXXXX,n,GotoIf($["${ODBC_FETCH}" = "FAILURE"]?cleanup,1) try this... exten=_XXXXXX,n,GotoIf($["${ODBC_FETCH_STATUS}" = "FAILURE"]?cleanup,1) Hope it helps you out. Regards, Bharat Lalcheta On Thu, Apr 18, 2013 at 5:36 PM, Pat Collins <drdialt...@optonline.net>wrote: > Thank you Bharat.**** > > Sadly, that made no difference.**** > > ** ** > > *From:* asterisk-users-boun...@lists.digium.com [mailto: > asterisk-users-boun...@lists.digium.com] *On Behalf Of *Bharat Lalcheta > *Sent:* Thursday, April 18, 2013 7:33 AM > *To:* Asterisk Users Mailing List - Non-Commercial Discussion > *Subject:* Re: [asterisk-users] ODBC dialplan looping problem**** > > ** ** > > I think there is no problem with asterisk. **** > > exten=_XXXXXX,n,GotoIf($["${ODBC_FETCH}" = "FAILURE"]?cleanup,1) **** > > exten=_XXXXXX,n,GotoIf($["${ROW_RESULT}" = "${CONF_PIN}"]?good_exten,1)*** > * > > It should be,**** > > exten=_XXXXXX,n,GotoIf($["${ODBC_FETCH}" = "FAILURE"]?getpin,cleanup,1) > exten=_XXXXXX,n,GotoIf($["${ROW_RESULT}" = > "${CONF_PIN}"]?getpin,good_exten,1)**** > > Hope it helps,**** > > Regards,**** > > **** > > Bharat Lalcheta**** > > On Thu, Apr 18, 2013 at 4:45 PM, Pat Collins <drdialt...@optonline.net> > wrote:**** > > All,**** > > Thank you in advance for any help.**** > > I have a customer in need of a conferencing system. A requirement is for > users to each have their own PIN for the same bridge.**** > > So, I put the list of users, PINs bridges into a MYSQL DB and used an ODBC > connector to parse the table.**** > > Asterisk is connected and reads the rows as expected. The problem is that > if a user enters a PIN that is NOT in the table, asterisk goes crazy and > continues to loop forever.**** > > Please have a look and tell me where I went so wrong.**** > > Func_odbc.conf looks like this:**** > > [PIN]**** > > dsn=BRIDGE**** > > mode=multirow**** > > readsql=SELECT pin from users WHERE confid='${SQL_ESC(${CONF_ID})}'**** > > **** > > extensions.conf section:**** > > [infromhost] ;Host dials 8888 over SIP trunk exten=8888,1,Answer**** > > exten=8888,n,Background(conf-getconfno)**** > > exten=8888,n,WaitExten(10)**** > > exten=8888,n,Hangup**** > > exten=_XXXXXX,1,Set(GLOBAL(CONF_ID)=${EXTEN})**** > > exten=_XXXXXX,n,GoTo(rooms,${EXTEN},1)**** > > ;**** > > [rooms]**** > > exten=_XXXXXX,1,Set(CONF_ID=${EXTEN})**** > > exten=_XXXXXX,n,Background(conf-getpin)**** > > exten=_XXXXXX,n,WaitExten(5)**** > > exten=_XXXXXX,n,Hangup**** > > exten=_1XXXXX,1,Goto(getpin,${EXTEN},1)**** > > exten=_2XXXXX,1,Goto(getpin,${EXTEN},1)**** > > exten=_3XXXXX,1,Goto(getpin,${EXTEN},1)**** > > exten=_4XXXXX,1,Goto(getpin,${EXTEN},1)**** > > exten=_5XXXXX,1,Goto(getpin,${EXTEN},1)**** > > exten=_6XXXXX,1,Goto(getpin,${EXTEN},1)**** > > exten=_7XXXXX,1,Goto(getpin,${EXTEN},1)**** > > exten=_8XXXXX,1,Goto(getpin,${EXTEN},1)**** > > exten=_9XXXXX,1,Goto(getpin,${EXTEN},1)**** > > exten=i,1,Goto(getpin,${CONF_PIN},1)**** > > ;**** > > [getpin]**** > > exten=_XXXXXX,1,Set(GLOBAL(CONF_PIN)=${EXTEN})**** > > exten=_XXXXXX,n,Set(ODBC_ID=${ODBC_PIN(1)})**** > > exten=_XXXXXX,n(loop_start),NoOp()**** > > exten=_XXXXXX,n,Set(ROW_RESULT=${ODBC_FETCH(${ODBC_ID})})**** > > exten=_XXXXXX,n,GotoIf($["${ODBC_FETCH}" = "FAILURE"]?cleanup,1) **** > > exten=_XXXXXX,n,GotoIf($["${ROW_RESULT}" = "${CONF_PIN}"]?good_exten,1)*** > * > > exten=_XXXXXX,n,Goto(loop_start)**** > > ;**** > > exten=cleanup,1,Verbose(1,Finish up)**** > > same=n,Verbose(1,PIN not found)**** > > same=n,ODBCFinish(${ODBC_ID})**** > > same=n,playback(conf-invalidpin)**** > > same=n,Goto(rooms,${CONF_ID}1)**** > > same=n,Hangup()**** > > ;**** > > exten=good_exten,1,Verbose(1,The PIN is available)**** > > same=n,ODBCFinish(${ODBC_ID})**** > > same=n,Verbose(1,Drop Caller into the bridge)**** > > same=n,Set(CONFBRIDGE(user,template)=default_user)**** > > same=n,ConfBridge(${CONF_ID},default_bridge,,sample_user_menu)**** > > same=n,Hangup()**** > > ;**** > > **** > > The log shows the 3 existing DB table rows are found but continues to > cycle indefinitely if the PIN is NOT found.**** > > First few rows of the console log:**** > > =========================================================================* > *** > > Connected to Asterisk 11.3.0 currently running on atpconf001 (pid = 1695) > atpconf001*CLI>**** > > == Using SIP RTP CoS mark 5**** > > **** > > atpconf001*CLI> **** > > -- Executing [067740@default:1] Set("SIP/testbridge2-00000021", > "GLOBAL(CONF_ID)=067740") in new stack**** > > == Setting global variable 'CONF_ID' to '067740'**** > > -- Executing [067740@default:2] Goto("SIP/testbridge2-00000021", > "rooms,067740,1") in new stack**** > > **** > > atpconf001*CLI> **** > > -- Goto (rooms,067740,1)**** > > -- Executing [067740@rooms:1] Set("SIP/testbridge2-00000021", > "CONF_ID=067740") in new stack**** > > -- Executing [067740@rooms:2] BackGround("SIP/testbridge2-00000021", > "conf-getpin") in new stack**** > > **** > > atpconf001*CLI> **** > > -- <SIP/testbridge2-00000021> Playing 'conf-getpin.slin' (language > 'en')**** > > **** > > atpconf001*CLI> **** > > -- Executing [067740@rooms:3] WaitExten("SIP/testbridge2-00000021", > "5") in new stack**** > > **** > > atpconf001*CLI>**** > > == CDR updated on SIP/testbridge2-00000021**** > > -- Executing [444999@rooms:1] Goto("SIP/testbridge2-00000021", > "getpin,444999,1") in new stack**** > > -- Goto (getpin,444999,1)**** > > -- Executing [444999@getpin:1] Set("SIP/testbridge2-00000021", > "GLOBAL(CONF_PIN)=444999") in new stack**** > > == Setting global variable 'CONF_PIN' to '444999'**** > > **** > > atpconf001*CLI> **** > > -- Executing [444999@getpin:2] Set("SIP/testbridge2-00000021", > "ODBC_ID=32") in new stack**** > > -- Executing [444999@getpin:3] NoOp("SIP/testbridge2-00000021", "") > in new stack**** > > -- Executing [444999@getpin:4] Set("SIP/testbridge2-00000021", > "ROW_RESULT=112233") in new stack**** > > **** > > atpconf001*CLI> **** > > -- Executing [444999@getpin:5] GotoIf("SIP/testbridge2-00000021", > "0?cleanup,1") in new stack**** > > -- Executing [444999@getpin:6] GotoIf("SIP/testbridge2-00000021", > "0?good_exten,1") in new stack**** > > -- Executing [444999@getpin:7] Goto("SIP/testbridge2-00000021", > "loop_start") in new stack**** > > -- Goto (getpin,444999,3)**** > > -- Executing [444999@getpin:3] NoOp("SIP/testbridge2-00000021", "") > in new stack**** > > -- Executing [444999@getpin:4] Set("SIP/testbridge2-00000021", > "ROW_RESULT=333333") in new stack**** > > -- Executing [444999@getpin:5] GotoIf("SIP/testbridge2-00000021", > "0?cleanup,1") in new stack**** > > -- Executing [444999@getpin:6] GotoIf("SIP/testbridge2-00000021", > "0?good_exten,1") in new stack**** > > -- Executing [444999@getpin:7] Goto("SIP/testbridge2-00000021", > "loop_start") in new stack**** > > -- Goto (getpin,444999,3)**** > > -- Executing [444999@getpin:3] NoOp("SIP/testbridge2-00000021", "") > in new stack**** > > -- Executing [444999@getpin:4] Set("SIP/testbridge2-00000021", > "ROW_RESULT=135792") in new stack //LAST GOOD RESULT!!!**** > > **** > > atpconf001*CLI> **** > > -- Executing [444999@getpin:5] GotoIf("SIP/testbridge2-00000021", > "0?cleanup,1") in new stack**** > > -- Executing [444999@getpin:6] GotoIf("SIP/testbridge2-00000021", > "0?good_exten,1") in new stack**** > > -- Executing [444999@getpin:7] Goto("SIP/testbridge2-00000021", > "loop_start") in new stack**** > > **** > > atpconf001*CLI> **** > > -- Goto (getpin,444999,3)**** > > -- Executing [444999@getpin:3] NoOp("SIP/testbridge2-00000021", "") > in new stack**** > > **** > > atpconf001*CLI> **** > > -- Executing [444999@getpin:4] Set("SIP/testbridge2-00000021", > "ROW_RESULT=") in new stack //BAD RESULTS FOREVER!!!**** > > **** > > atpconf001*CLI> **** > > -- Executing [444999@getpin:5] GotoIf("SIP/testbridge2-00000021", > "0?cleanup,1") in new stack**** > > **** > > atpconf001*CLI> **** > > -- Executing [444999@getpin:6] GotoIf("SIP/testbridge2-00000021", > "0?good_exten,1") in new stack**** > > **** > > atpconf001*CLI> **** > > -- Executing [444999@getpin:7] Goto("SIP/testbridge2-00000021", > "loop_start") in new stack**** > > -- Goto (getpin,444999,3)**** > > -- Executing [444999@getpin:3] NoOp("SIP/testbridge2-00000021", "") > in new stack //AND SO ON........**** > > **** > > Thank you!!**** > > Pat Collins...**** > > **** > > **** > > **** > > > -- > _____________________________________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: > http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users**** > > > > > -- > Bharat Lalcheta **** > > -- > _____________________________________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: > http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users > -- Bharat Lalcheta
-- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users