bladox.com Forum Index bladox.com
Turbo SIM Toolkit Adapter Forums
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

how to view caller number string from T_ADDRESS tag

 
Post new topic   Reply to topic    bladox.com Forum Index -> Development
View previous topic :: View next topic  
Author Message
tkm



Joined: 18 Jan 2011
Posts: 72

PostPosted: Wed Feb 23, 2011 11:19 am    Post subject: how to view caller number string from T_ADDRESS tag Reply with quote

Hello, I am trying to retrieve the value of T_ADDRESS number string in following manner:
Code:
u8 j2,l2,i2;
   u8 *buf2;
   
   buf2=malloc (200);
   u8 *r2=buf2;
   
   j2 = get_tag (s, T_ADDRESS);
   
   if (j2 != 0)
   {
      l2 = s[j2 + 1];
      dbsp ("len=");
      dbih (l2);
      dbsp ("\n");
      for (i2 = 0; i2 < l2; i2++)
      {
        r2 = sprintch (r2, s[j2 + 2 + i2]);
        dbsp ("To Hex=");
        dbih (sprintch (r2, s[j2 + 2 + i2]));
        dbsp ("\n");
        dbsp ("Character=");
        dbih (sprintc (r2, s[j2 + 2 + i2]));
        dbsp ("\n");
        dbsp ("Integer=");
        dbih (sprinti(r2, s[j2 + 2 + i2]));
        dbsp ("\n");       
      }
      r2 = sprintc (r2, '#');

      
   }


But I am receiving the following trace:
Quote:

len=0007
To Hex=0623
Character=0622
Integer=0624
To Hex=0625
Character=0624
Integer=0626
To Hex=0627
Character=0626
Integer=0628
To Hex=0629
Character=0628
Integer=062a
To Hex=062b
Character=062a
Integer=062b
To Hex=062d
Character=062c
Integer=062d
To Hex=062f
Character=062e
Integer=0630


The above I understand/think are the address/location of the numbers. But I want to get hold of number (say: 0787887...) itself and possibly change the number to a different one in the memory location.

Can anyone kindly tell me how I can achieve that? How to see the actual number provided by the caller? Many thanks.
Back to top
View user's profile Send private message
tkm



Joined: 18 Jan 2011
Posts: 72

PostPosted: Wed Feb 23, 2011 1:13 pm    Post subject: Re: how to view caller number string from T_ADDRESS tag Reply with quote

tkm wrote:
Hello, I am trying to retrieve the value of T_ADDRESS number string in following manner:
Code:
u8 j2,l2,i2;
   u8 *buf2;
   
   buf2=malloc (200);
   u8 *r2=buf2;
   
   j2 = get_tag (s, T_ADDRESS);
   
   if (j2 != 0)
   {
      l2 = s[j2 + 1];
      dbsp ("len=");
      dbih (l2);
      dbsp ("\n");
      for (i2 = 0; i2 < l2; i2++)
      {
        r2 = sprintch (r2, s[j2 + 2 + i2]);
        dbsp ("To Hex=");
        dbih (sprintch (r2, s[j2 + 2 + i2]));
        dbsp ("\n");
        dbsp ("Character=");
        dbih (sprintc (r2, s[j2 + 2 + i2]));
        dbsp ("\n");
        dbsp ("Integer=");
        dbih (sprinti(r2, s[j2 + 2 + i2]));
        dbsp ("\n");       
      }
      r2 = sprintc (r2, '#');

      
   }


But I am receiving the following trace:
Quote:

len=0007
To Hex=0623
Character=0622
Integer=0624
To Hex=0625
Character=0624
Integer=0626
To Hex=0627
Character=0626
Integer=0628
To Hex=0629
Character=0628
Integer=062a
To Hex=062b
Character=062a
Integer=062b
To Hex=062d
Character=062c
Integer=062d
To Hex=062f
Character=062e
Integer=0630


The above I understand/think are the address/location of the numbers. But I want to get hold of number (say: 0787887...) itself and possibly change the number to a different one in the memory location.

Can anyone kindly tell me how I can achieve that? How to see the actual number provided by the caller? Many thanks.


Taking into account that T_ADDRESS is the memory address of the dialed number user has typed in, I tried to change that value like:
Code:

u8 *buf3= buf_B ();
u8 *b = buf3;

    b = sprintc (b, '+');
    b = sprintch (b, '0');
    b = sprintch (b, '7');
    b = sprintch (b, '8');
    b = sprintch (b, '7');
    b = sprintch (b, '8');
    b = sprintch (b, '8');
    b = sprintch (b, '7');
    b = sprintch (b, '4');
    b = sprintch (b, '2');
    b = sprintch (b, '3');
    b = sprintch (b, '9');
    b = sprintc (b, '\0');
get_resp_call[get_resp_call_len++] = str2hex (buf3);// which was previously setting T_ADDRESS

Although in debug trace it shows a different address location:
Quote:
TO ME: 02 0a 07 08 81 00 44 87 87 45 72 48 90 00
07 instead of usual 06 but it doesn't work/application failes/call diverts fails.

Please let me know what I am doing wrong here. Many thanks.
Back to top
View user's profile Send private message
tkm



Joined: 18 Jan 2011
Posts: 72

PostPosted: Mon Feb 28, 2011 1:26 pm    Post subject: Reply with quote

pz? Please some response/feedback/direction...?How to get hold of the T_Address value/number and how can I change the number of T_ADDRESS?
Many thanks.
Back to top
View user's profile Send private message
pz



Joined: 12 Mar 2004
Posts: 1161

PostPosted: Tue Mar 01, 2011 8:20 am    Post subject: Reply with quote

dbih (sprintch (r2, s[j2 + 2 + i2])); is wrong, sprint*() calls add the string/whatever to provided buffer (r2 in your case) and return new pointer that points after the added string. I.e. you are printing the pointer, not the character.

Just do dbch(s[j2 + 2 + i2]), that's it.

Further don't forget the msisdn is coded as swapped nibbles.
Back to top
View user's profile Send private message
tkm



Joined: 18 Jan 2011
Posts: 72

PostPosted: Wed Mar 02, 2011 9:43 am    Post subject: Reply with quote

pz wrote:
dbih (sprintch (r2, s[j2 + 2 + i2])); is wrong, sprint*() calls add the string/whatever to provided buffer (r2 in your case) and return new pointer that points after the added string. I.e. you are printing the pointer, not the character.

Just do dbch(s[j2 + 2 + i2]), that's it.

Further don't forget the msisdn is coded as swapped nibbles.

Thanks a lot, pz. Will try that.
Back to top
View user's profile Send private message
tkm



Joined: 18 Jan 2011
Posts: 72

PostPosted: Thu Mar 03, 2011 7:20 pm    Post subject: Reply with quote

tkm wrote:
pz wrote:
dbih (sprintch (r2, s[j2 + 2 + i2])); is wrong, sprint*() calls add the string/whatever to provided buffer (r2 in your case) and return new pointer that points after the added string. I.e. you are printing the pointer, not the character.

Just do dbch(s[j2 + 2 + i2]), that's it.

Further don't forget the msisdn is coded as swapped nibbles.

Thanks a lot, pz. Will try that.

PZ, I got to see the numbers as per ur advise. Many many thanks. I didn't get what you meant by
Quote:
don't forget the msisdn is coded as swapped nibbles.
.Would u kindly explain that a bit further?
Back to top
View user's profile Send private message
tkm



Joined: 18 Jan 2011
Posts: 72

PostPosted: Fri Mar 04, 2011 12:09 pm    Post subject: Reply with quote

Hi pz, is T_ADDRESS always a fixed location? Everytime I trace it gives me 06. I tried to replace it like following:

Quote:
u8* r = buf_B();

r[0] = r;//address of buffer
r[1] = 0X07;//length
r[2] = 0X81;//NPI
r[3] = 0X70;//Number starts here
r[4] = 0X78;
r[5] = 0X88;
r[6] = 0X47;
r[7] = 0X32;
r[8] = 0Xf9;//number ends

//get_resp_call[get_resp_call_len++] = T_ADDRESS;
get_resp_call[get_resp_call_len++] = r;


But it doesn't seem to be accepting it and not doing call divert.

Any thoughts plsssssssss? Many thanks.[/quote]
Back to top
View user's profile Send private message
pz



Joined: 12 Mar 2004
Posts: 1161

PostPosted: Mon Mar 07, 2011 5:50 pm    Post subject: Reply with quote

tkm wrote:
Hi pz, is T_ADDRESS always a fixed location? Everytime I trace it ives me 06. I tried to replace it like following:


You mean in MO_CALL_CONTROL event ENVELOPE or where?
Take a look at 11.14 spec, free from www.etsi.org

Look at autoalarm or pager source - it's handled there.

Quote:

Quote:
u8* r = buf_B();

r[0] = r;//address of buffer
r[1] = 0X07;//length
r[2] = 0X81;//NPI
r[3] = 0X70;//Number starts here
r[4] = 0X78;
r[5] = 0X88;
r[6] = 0X47;
r[7] = 0X32;
r[8] = 0Xf9;//number ends

//get_resp_call[get_resp_call_len++] = T_ADDRESS;
get_resp_call[get_resp_call_len++] = r;


But it doesn't seem to be accepting it and not doing call divert.

Any thoughts plsssssssss? Many thanks.


Huh, this doesn't make much sense: r[0]=r and get_resp_call[get_resp_call_len++] = r;

You must copy content of the buffer - set it properly.

What are you trying to do? Modify outgoing number? See callback source, it's there.
Back to top
View user's profile Send private message
tkm



Joined: 18 Jan 2011
Posts: 72

PostPosted: Tue Mar 08, 2011 4:56 pm    Post subject: Reply with quote

pz wrote:
tkm wrote:
Hi pz, is T_ADDRESS always a fixed location? Everytime I trace it ives me 06. I tried to replace it like following:


You mean in MO_CALL_CONTROL event ENVELOPE or where?
Take a look at 11.14 spec, free from www.etsi.org

Look at autoalarm or pager source - it's handled there.

Quote:

Quote:
u8* r = buf_B();

r[0] = r;//address of buffer
r[1] = 0X07;//length
r[2] = 0X81;//NPI
r[3] = 0X70;//Number starts here
r[4] = 0X78;
r[5] = 0X88;
r[6] = 0X47;
r[7] = 0X32;
r[8] = 0Xf9;//number ends

//get_resp_call[get_resp_call_len++] = T_ADDRESS;
get_resp_call[get_resp_call_len++] = r;


But it doesn't seem to be accepting it and not doing call divert.

Any thoughts plsssssssss? Many thanks.


Huh, this doesn't make much sense: r[0]=r and get_resp_call[get_resp_call_len++] = r;

You must copy content of the buffer - set it properly.

What are you trying to do? Modify outgoing number? See callback source, it's there.
Thanks a lot pz, for ur reply. Well, I am trying with MO_CALL_CONTROL event envelope now to change outgoing number, but my target is to change SMSC number for sms in the MO_SMS_CONTROL event. I am taking into account that the address packets (where numbers are kept) are same for call-control and sms.
Back to top
View user's profile Send private message
pz



Joined: 12 Mar 2004
Posts: 1161

PostPosted: Fri Mar 11, 2011 7:17 pm    Post subject: Reply with quote

Yes, it should be similar to MO_CALL_CONTROL. Have you found the 11.14 spec?
Back to top
View user's profile Send private message
tkm



Joined: 18 Jan 2011
Posts: 72

PostPosted: Wed Mar 16, 2011 9:40 am    Post subject: Reply with quote

pz wrote:
Yes, it should be similar to MO_CALL_CONTROL. Have you found the 11.14 spec?

I have sorted this prob. Many many thanks for all the information/feedback you gave me.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    bladox.com Forum Index -> Development All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group