[Home]

Summary:ASTERISK-16447: CDR(userfield) is not saved when called by Set(CDR(userfield)=...) activated by features.conf
Reporter:James Wilson (integratedvoip)Labels:
Date Opened:2010-07-27 21:37:06Date Closed:2011-06-07 14:04:55
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Features
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:This is almost identical to bug 0015502 which was closed.

In my applicationmap within features.conf i have the following:
setExtension628 => *7628,peer/callee,Set,CDR(userfield)=internal_extension=628,default

For an inboound call i dial *7628 on the callee and the CDR(userfield) channel variable is set on the caller (peer). However when the call is completed the CDR(userfield) is not saved correctly



****** ADDITIONAL INFORMATION ******

The asterisk version 1.6.2.6
Comments:By: James Wilson (integratedvoip) 2010-07-27 21:38:43

The summary has a typo; I am actually calling Set(CDR(userfield) and not Set(userfield)

By: James Wilson (integratedvoip) 2010-07-27 21:39:32

I have not tried a newer version as there is no mention of changes between 1.6.2.6 and 1.6.2.10 in the changelog related to this problem

By: James Wilson (integratedvoip) 2010-07-27 21:44:57

Before i activate the feature i have the following channel veriables on the caller:

pyramid*CLI> core show channel DAHDI/9-1
-- General --
          Name: DAHDI/9-1
          Type: DAHDI
      UniqueID: 1280283606.509
     Caller ID: (N/A)
Caller ID Name: (N/A)
   DNID Digits: XXXXXXXX
      Language: en
         State: Ringing (5)
         Rings: 1
 NativeFormats: 0x8 (alaw)
   WriteFormat: 0x8 (alaw)
    ReadFormat: 0x8 (alaw)
WriteTranscode: No
 ReadTranscode: No
1st File Descriptor: 19
     Frames in: 209
    Frames out: 0
Time to Hangup: 0
  Elapsed Time: 0h0m4s
 Direct Bridge: <none>
Indirect Bridge: <none>
--   PBX   --
       Context: from-public-pri-1
     Extension: XXXXXXXX
      Priority: 4
    Call Group: 0
  Pickup Group: 0
   Application: Dial
          Data: SIP/301
   Blocking in: ast_waitfor_nandfds
     Variables:
DIALEDTIME=
ANSWEREDTIME=
DIALEDPEERNAME=
DIALEDPEERNUMBER=
DIALSTATUS=
MACRO_DEPTH=0
AGISTATUS=FAILURE
MIXMONITOR_FILENAME=/var/spool/asterisk/monitor/IN-XXXXXXXX--20100728-122006-1280283606.509.WAV
DYNAMIC_FEATURES=stopMixMonitor#setExtension628
CALLEDTON=65
ANI2=0
TRANSFERCAPABILITY=SPEECH

 CDR Variables:
level 1: dnid=XXXXXXXX
level 1: dst=XXXXXXXX
level 1: dcontext=from-public-pri-1
level 1: channel=DAHDI/9-1
level 1: dstchannel=SIP/301-0000001a
level 1: lastapp=Dial
level 1: lastdata=SIP/301
level 1: start=2010-07-28 12:20:06
level 1: duration=4
level 1: billsec=0
level 1: disposition=NO ANSWER
level 1: amaflags=DOCUMENTATION
level 1: uniqueid=1280283606.509
level 1: userfield=recording=true

By: James Wilson (integratedvoip) 2010-07-27 21:46:20

After i activate the feature i have the following channel variables:

Feature Found: setExtension628 exten: setExtension628

pyramid*CLI> core show channel DAHDI/9-1
-- General --
          Name: DAHDI/9-1
          Type: DAHDI
      UniqueID: 1280283606.509
     Caller ID: (N/A)
Caller ID Name: (N/A)
   DNID Digits: XXXXXXXX
      Language: en
         State: Up (6)
         Rings: 1
 NativeFormats: 0x8 (alaw)
   WriteFormat: 0x8 (alaw)
    ReadFormat: 0x8 (alaw)
WriteTranscode: No
 ReadTranscode: No
1st File Descriptor: 19
     Frames in: 784
    Frames out: 451
Time to Hangup: 0
  Elapsed Time: 0h0m15s
 Direct Bridge: SIP/301-0000001a
Indirect Bridge: SIP/301-0000001a
--   PBX   --
       Context: from-public-pri-1
     Extension: XXXXXXXX
      Priority: 4
    Call Group: 0
  Pickup Group: 0
   Application: Dial
          Data: SIP/301
   Blocking in: ast_waitfor_nandfds
     Variables:
BRIDGEPVTCALLID=7742e768644c44cf359d27e05ff6b839@10.44.1.2
BRIDGEPEER=SIP/301-0000001a
DIALEDPEERNUMBER=301
DIALEDPEERNAME=SIP/301-0000001a
DIALSTATUS=ANSWER
DIALEDTIME=
ANSWEREDTIME=
MACRO_DEPTH=0
AGISTATUS=FAILURE
MIXMONITOR_FILENAME=/var/spool/asterisk/monitor/IN-XXXXXXXX--20100728-122006-1280283606.509.WAV
DYNAMIC_FEATURES=stopMixMonitor#setExtension628
CALLEDTON=65
ANI2=0
TRANSFERCAPABILITY=SPEECH

 CDR Variables:
level 1: dnid=XXXXXXXX
level 1: dst=XXXXXXXX
level 1: dcontext=from-public-pri-1
level 1: channel=DAHDI/9-1
level 1: dstchannel=SIP/301-0000001a
level 1: lastapp=Set
level 1: lastdata=CDR(userfield)=internal_extension=628
level 1: start=2010-07-28 12:20:06
level 1: answer=2010-07-28 12:20:12
level 1: duration=15
level 1: billsec=9
level 1: disposition=ANSWERED
level 1: amaflags=DOCUMENTATION
level 1: uniqueid=1280283606.509
level 1: userfield=internal_extension=628

By: James Wilson (integratedvoip) 2010-07-27 21:47:58

Within the CDR recordord in the MySQL database i have:

mysql> select * from cdr where uniqueid = '1280283606.509' order by calldate desc limit 10;
+-------+---------------------+------+-----+----------+-------------------+-----------+------------------+---------+----------+----------+---------+-------------+----------+-------------+----------------+----------------+
| id    | calldate            | clid | src | dst      | dcontext          | channel   | dstchannel       | lastapp | lastdata | duration | billsec | disposition | amaflags | accountcode | uniqueid       | userfield      |
+-------+---------------------+------+-----+----------+-------------------+-----------+------------------+---------+----------+----------+---------+-------------+----------+-------------+----------------+----------------+
| 20032 | 2010-07-28 12:20:06 |      |     | XXXXXXXX | from-public-pri-1 | DAHDI/9-1 | SIP/301-0000001a | Dial    | SIP/301  |       43 |      37 | ANSWERED    |        3 |             | 1280283606.509 | recording=true |
+-------+---------------------+------+-----+----------+-------------------+-----------+------------------+---------+----------+----------+---------+-------------+----------+-------------+----------------+----------------+

By: Leif Madsen (lmadsen) 2010-07-28 13:32:06

Set,CDR(userfield)=internal_extension=628

That looks funny to me. Not sure if the dialplan would bork on that.

Presumably you're trying to set the field value of "internal_extension=628".

Have you tried:

Set(CDR(userfield)=internal_extension=628)

...in the dialplan? That works right?

By: James Wilson (integratedvoip) 2010-07-28 18:33:38

Yes if i use Set(CDR(userfield)=internal_extension=628) directly in the dialplan it works fine.

I am trying to set the userfield value to "internal_extension=628".

The strange thing is that i can see the variable set when i view the channel variables, but it does not get saved to the DB. Also when i extract the variable using ${CDR(userfield)} it is incorrect.

By: Tilghman Lesher (tilghman) 2010-07-29 12:20:54

None of this matters, because you're doing this on the peer/callee, when the CDR is located on the self/caller.  This is EXACTLY the same issue as before.

And it has exactly the same resolution.  It's not a bug; it's working correctly.  You need to alter where you're putting the data, because you're putting it in a place where there is no CDR.



By: Leif Madsen (lmadsen) 2010-07-29 12:30:01

This is the same issue that was previously closed. This is not a bug.