<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>mediaburst &#187; John</title>
	<atom:link href="http://www.mediaburst.co.uk/blog/author/johnc/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mediaburst.co.uk</link>
	<description>SMS, MMS and Mobile marketing</description>
	<lastBuildDate>Thu, 02 Feb 2012 15:39:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Convert a mobile number into international&#160;format</title>
		<link>http://www.mediaburst.co.uk/blog/convert-a-mobile-number-into-international-format/</link>
		<comments>http://www.mediaburst.co.uk/blog/convert-a-mobile-number-into-international-format/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 14:13:36 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[API & technical]]></category>
		<category><![CDATA[Learn about SMS]]></category>

		<guid isPermaLink="false">http://www.mediaburst.co.uk/?p=61662</guid>
		<description><![CDATA[You&#8217;ll have seen some of the plugins we&#8217;ve developed recently, noteably, shopify sms and magento sms. Prior to these plugins the applications we&#8217;ve developed rely on the sender of the text message to input the mobile phone number, just as you do when you&#8217;re sending a text message from your mobile phone. You, as the [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ll have seen some of the plugins we&#8217;ve developed recently, noteably, <a href="/plugins-integrations/send-sms-with-shopify/">shopify sms</a> and <a href="/plugins-integrations/magento-sms/">magento sms</a>.</p>
<p>Prior to these plugins the applications we&#8217;ve developed rely on the sender of the text message to input the mobile phone number, just as you do when you&#8217;re sending a text message from your mobile phone. You, as the sender, type in the recipients number.</p>
<p>This is generally foolproof because the sender has an inherent understanding of the number format required to send the text message.</p>
<p>With an eCommerce plugin we have another party to consider. The purchaser or &#8220;receiver&#8221; of the text message is the one who inputs their mobile number.<span id="more-61662"></span></p>
<p>And they do so without any knowledge of the format the store owner needs to actually send the text message.</p>
<p>e.g. ask someone to fill in a form with their UK mobile number and you&#8217;ll get things like:</p>
<p>07741234567</p>
<p>07741 234567</p>
<p>07741 234 567</p>
<p>447741234567</p>
<p>447741 234567</p>
<p>+447741234567</p>
<p>44(0)7741234567</p>
<p>and so on, I think you get the picture.</p>
<p>Couple this with the international reach of most eCommerce applications and you&#8217;ve got people from all over the world inputting mobile numbers in all sorts of formats, and both the purchaser and their store owners expecting to receive text messages.</p>
<p>The answer is relatively simple, we need to convert any mobile number into a valid international format. That way we&#8217;ll have consistency in the data and our <a href="/api/">SMS API</a> can route the messages to the appropriate country.</p>
<p>Here&#8217;s how we currently do it:</p>
<p>To do this you&#8217;ll need a table of international dialling codes. We use one hacked together from Wikipedia. Here&#8217;s the <a href="http://plugins.svn.wordpress.org/mediaburst-ecommerce-sms-notifications/trunk/country-calling-codes.php" target="_blank">PHP code</a>.</p>
<ol>
<li>Strip out any leading zeros.</li>
<li>Remove any numbers within parentheses</li>
<li>Strip any spaces or non numeric characters.</li>
<li>Take the country of residence of the purchaser. If the purchaser didn&#8217;t input a country then use the store default, and look this up on the table of dialling codes.</li>
<li>If the mobile number starts with the dialling code then great, you&#8217;re good to go.</li>
<li>If not then add the dialling code to the start of the number, and then your good to go.</li>
</ol>
<p>We are aware that this could be improved.</p>
<p>For instance, if the number starts with a &#8216;+&#8217; then we could take it that the user has already supplied the country code.</p>
<p>We could also do this if the number starts with &#8217;00&#8242;. That is for the UK though, other countries have other codes to dial an international number.</p>
<p>We will be looking at improving the process as we go on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mediaburst.co.uk/blog/convert-a-mobile-number-into-international-format/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Long&#160;SMS</title>
		<link>http://www.mediaburst.co.uk/blog/long-sms/</link>
		<comments>http://www.mediaburst.co.uk/blog/long-sms/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 07:00:34 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[API & technical]]></category>
		<category><![CDATA[Learn about SMS]]></category>

		<guid isPermaLink="false">http://www.mediaburst.co.uk/?p=54581</guid>
		<description><![CDATA[Although a standard single SMS text message is restricted to 160 characters, longer text messages are possible using the concatenation feature. Concatenation is a way of sending multiple SMS that get stitched together on the recipient’s phone, thus appearing as a single, long SMS. In theory you could concatenate 255 SMS to produce one long [...]]]></description>
			<content:encoded><![CDATA[<p>Although a standard single SMS text message is restricted to 160 characters, longer text messages are possible using the concatenation feature. Concatenation is a way of sending multiple SMS that get stitched together on the recipient’s phone, thus appearing as a single, long SMS.</p>
<p>In theory you could concatenate 255 SMS to produce one long SMS, but in practice this is likely to crash a mobile phone, incur significant costs, and annoy the recipient.<span id="more-54581"></span></p>
<p>Our statistics show that most long SMS contain less than 306 characters (the limit of 2 concatenated SMS), and very few exceed 459 (3 concatenated SMS). For this reason both our web application <a href="/textburst/">textburst</a> and our <a href="/api/">SMS API</a> allow you to send up to 3 SMS that can make up a single long SMS.</p>
<p>If you’re looking for a more in depth technical discussion then refer to our article on <a href="/blog/concatenated-sms/">Concatenating SMS</a>. It covers the technical requirements and use of the UDH (user data header) to form the long SMS.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mediaburst.co.uk/blog/long-sms/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Concatenated&#160;SMS</title>
		<link>http://www.mediaburst.co.uk/blog/concatenated-sms/</link>
		<comments>http://www.mediaburst.co.uk/blog/concatenated-sms/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 09:47:42 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[API & technical]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[sms]]></category>

		<guid isPermaLink="false">http://www.mediaburst.co.uk/?p=1571</guid>
		<description><![CDATA[As a standard SMS can only contain 160 7-bit GSM characters, Concatenated SMS are used to send long SMS. Concatenation allows a sender to send more than one SMS which then get stuck together automatically by the phone to appear as one message. For sending messages, our SMS API will automatically take care of the [...]]]></description>
			<content:encoded><![CDATA[<p>As a standard SMS can only contain 160 7-bit <a title="The GSM Character Set" href="/blog/the-gsm-character-set/">GSM characters</a>, Concatenated SMS are used to send long SMS. Concatenation allows a sender to send more than one SMS which then get stuck together automatically by the phone to appear as one message.<br />
<span id="more-1571"></span></p>
<p>For sending messages, our <a href="/api">SMS API</a> will automatically take care of the settings need to do this as long as the ‘<a title="Concat Parameter" href="/api/sending-a-message/parameters/#param-concat">Concat</a>’ parameter is set when sending the message. The Concat parameter can take the value of 1, 2 or 3, and indicates how many SMS you are willing to use to attempt to send a message.</p>
<p>However, if you have messages which are sent from phones to your application (<a title="MO Messages" href="/api/receiving-a-message/">MO Messages</a>), an understanding of how concatenation works can be useful if users are likely to send messages over 160 characters.</p>
<h2>User Data Header (UDH)</h2>
<p>The SMS that make up a concatenated SMS are related together by using the User Data Header (UDH) of an SMS. The UDH is a collection of bytes which can be put at the start of the SMS content. It can be used to control what happens to the rest of the content. For instance, it was used to send the older style of Nokia picture messages.</p>
<p>To indicate that the content contains a UDH, a flag on the SMS called the UDH Indicator (UDHI) must be turned on. This tells the phone that it must separate the UDH from the rest of the content.</p>
<p style="text-align: center;">
<div id="attachment_1573" class="wp-caption aligncenter" style="width: 486px"><a href="http://www1.mbstatic.co.uk/wp-content/uploads/2009/12/UDH.png"><img class="size-full wp-image-1573 " title="UDH" src="http://www1.mbstatic.co.uk/wp-content/uploads/2009/12/UDH.png" alt="Format of an SMS with a UDH" width="476" height="263" /></a><p class="wp-caption-text">Format of an SMS with a UDH</p></div>
<p>The phone separates the UDH by reading the first byte of the content. The number in this byte is the length of the rest of UDH and is called the User Data Header Length (UDHL). The phone then knows how many bytes make up the UDH and can separate it from the rest of the message.</p>
<p>As already stated, a UDH can control various things and so can contain various commands. These commands are called Information Elements (IE’s). These IE’s always take the following format: an Identity Element Identifier (IEI) followed by the Length of the IE Data (IEDL) followed by the IE Data (IED). A UDH can contain 1 or more of these IE’s.</p>
<h2>UDH’s for Concatenated SMS</h2>
<p>For concatenated messages the IE’s that we are interested in are the ones with Identifiers (IEI) of 00 or 08. These indicate that the rest of the message is a concatenated message.</p>
<p>Let’s take an example of using the 00 Information Element Identifier.</p>
<p>The 00 IEI always has an IEDL of 03. That is, there are 3 bytes in the IE Data section.</p>
<p>The first byte is a reference number. This reference number must be the same for all SMS that make up a particular concatenated message.</p>
<p>The second byte is the total number of SMS that go to make up the concatenated message.</p>
<p>The third byte is the part number that this particular SMS is.</p>
<p>So if we have a message that is split across two SMS the bytes in the SMS may be:</p>
<pre class="brush: plain; title: ; notranslate">
First SMS: 05 00 03 A6 02 01 .. bytes that make up the first part text ..
Second SMS: 05 00 03 A6 02 02 .. bytes that make up the second part text ..</pre>
<table class="default" border="0">
<thead>
<tr>
<th>Bytes</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>05</td>
<td>The UDHL, or length of the UDH. So the following five bytes are UDH</td>
</tr>
<tr>
<td>00</td>
<td>This is the IEI. This identifier says this is a concatenated message</td>
</tr>
<tr>
<td>03</td>
<td>This is the IEDL. It says that next 3 bytes are the data for this IE.</td>
</tr>
<tr>
<td>A6</td>
<td>The reference number of this concatenated message. Each part must have the same reference number.</td>
</tr>
<tr>
<td>02</td>
<td>There are two parts to this concatenated message.</td>
</tr>
<tr>
<td>01 or 02</td>
<td>This indicates whether the SMS is the first or second part.</td>
</tr>
</tbody>
</table>
<p style="text-align: center;">
<p style="text-align: center;">The 08 identifier works the same way as the 00, but instead of a 1 byte reference number, it uses a 2 byte (16 bit) reference number. Therefore its IEDL is 04, there are 4 bytes in the IE Data section. These are as follows:</p>
<p>The first and second bytes make up the 16-bit reference number.</p>
<p>The third byte is the total number of SMS that go to make up the concatenated message.</p>
<p>The forth byte is the part number that this particular SMS is.</p>
<p>So another two SMS examples could be:</p>
<pre class="brush: plain; title: ; notranslate">
First SMS: 06 08 04 F4 2E 02 01 .. bytes that make up the first part text ..
Second SMS: 06 08 04 F4 2E 02 02 .. bytes that make up the second part text ..
</pre>
<table class="default" border="0">
<thead>
<tr>
<th>Bytes</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>06</td>
<td>The UDHL, or length of the UDH. So the following six bytes are UDH</td>
</tr>
<tr>
<td>08</td>
<td>This is the IEI. This identifier says this is a concatenated message with 16-bit reference</td>
</tr>
<tr>
<td>04</td>
<td>This is the IEDL. It says that next 4 bytes are the data for this IE.</td>
</tr>
<tr>
<td>F42E</td>
<td>The reference number of this concatenated message. Each part must have the same reference number.</td>
</tr>
<tr>
<td>02</td>
<td>There are two parts to this concatenated message.</td>
</tr>
<tr>
<td>01 or 02</td>
<td>This indicates whether the SMS is the first or second part.</td>
</tr>
</tbody>
</table>
<p style="text-align: center;">
<p style="text-align: center;">
<h2>The API</h2>
<p>As mentioned at the start of this article, our API will take care of all of this for sending messages. All you do is set the ‘Concat’ field to maximum SMS that you are willing to use to send a message.</p>
<p>For receiving messages, our API will forward through the individual SMS that make up a concatenated message. The UDH is already removed from the content and is present in the <a title="UDH Parameter" href="/api/receiving-a-message/parameters/#udh">UDH</a> parameter as the hex encoded bytes. The rest of the content is placed into the <a title="Payload Parameter" href="/api/receiving-a-message/parameters/#payload">Payload</a> parameter.</p>
<p>For most single SMS, a UDH parameter will not be present and so the parameter will be blank. But for concatenated SMS, the receiving script can check the UDH for the 00 or 08 IEI’s to allow it to piece together the original message.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mediaburst.co.uk/blog/concatenated-sms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The GSM character&#160;set</title>
		<link>http://www.mediaburst.co.uk/blog/the-gsm-character-set/</link>
		<comments>http://www.mediaburst.co.uk/blog/the-gsm-character-set/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 11:08:41 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[API & technical]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[sms]]></category>

		<guid isPermaLink="false">http://www.mediaburst.co.uk/tech/?p=331</guid>
		<description><![CDATA[One of the issues that we continually see appearing is the question of which characters can be sent in a text message. What follows is a brief description of the format of a text message The UK mobile networks all use the GSM standard, and as such, a standard text message is limited to the [...]]]></description>
			<content:encoded><![CDATA[<p>One of the issues that we continually see appearing is the question of which characters can be sent in a text message. What follows is a brief description of the format of a text message<br />
<span id="more-511"></span></p>
<p>The UK mobile networks all use the <a href="http://en.wikipedia.org/wiki/GSM">GSM standard</a>, and as such, a standard text message is limited to the GSM character set.</p>
<p>An SMS can contain up to 140 bytes. The GSM character set is encoded using 7-bits, rather than the usual 8-bits that make a byte. This means there can be 160 characters in an SMS.</p>
<p>This 7-bit limitation means only 128 standard characters can be encoded. The GSM standard gets round this by also having the Extended GSM character set. These are another 10 characters which are actually sent by sending two 7-bit characters, an escape (ESC) character followed by another character. This means that 160 &#8216;£&#8217; symbols can fit in a single SMS, but only 80 &#8216;{&#8216; symbols.</p>
<p>If you need to send other characters than those in the GSM character set, then take a look at UCS-2 messaging which allows sending most <a href="http://www.unicode.org/standard/standard.html">unicode characters</a>, but as each of these takes 2 bytes it means only 70 characters can be sent per SMS.</p>
<p>So our customers don&#8217;t need to bother converting characters into the GSM encoding or escaping the extended characters, our <a href="/api">SMS API</a> accepts messages in <a href="http://en.wikipedia.org/wiki/Utf-8">UTF-8 encoding</a>.</p>
<p><em><span style="color: #808080;">Update: Since posting this we&#8217;ve released an article on</span> <a href="/blog/the-gsm-character-set-in-net/">how to do GSM character encoding in .NET</a></em></p>
<p>The tables below show a full list of the GSM characters, standard and extended. They also show the equivalent UTF-8 encoding need to send into our API.</p>
<h2>Standard GSM Characters</h2>
<table class="default">
<thead>
<tr>
<th>GSM</th>
<th>UTF-8</th>
<th>Char</th>
</tr>
</thead>
<tbody>
<tr>
<td>00</td>
<td>40</td>
<td>@</td>
</tr>
<tr>
<td>01</td>
<td>C2,A3</td>
<td>£</td>
</tr>
<tr>
<td>02</td>
<td>24</td>
<td>$</td>
</tr>
<tr>
<td>03</td>
<td>C2,A5</td>
<td>¥</td>
</tr>
<tr>
<td>04</td>
<td>C3,A8</td>
<td>è</td>
</tr>
<tr>
<td>05</td>
<td>C3,A9</td>
<td>é</td>
</tr>
<tr>
<td>06</td>
<td>C3,B9</td>
<td>ù</td>
</tr>
<tr>
<td>07</td>
<td>C3,AC</td>
<td>ì</td>
</tr>
<tr>
<td>08</td>
<td>C3,B2</td>
<td>ò</td>
</tr>
<tr>
<td>09</td>
<td>C3,87</td>
<td>Ç</td>
</tr>
<tr>
<td>0A</td>
<td>0A</td>
<td>&lt;LF&gt;</td>
</tr>
<tr>
<td>0B</td>
<td>C3,98</td>
<td>Ø</td>
</tr>
<tr>
<td>0C</td>
<td>C3,B8</td>
<td>ø</td>
</tr>
<tr>
<td>0D</td>
<td>0D</td>
<td>&lt;CR&gt;</td>
</tr>
<tr>
<td>0E</td>
<td>C3,85</td>
<td>Å</td>
</tr>
<tr>
<td>0F</td>
<td>C3,A5</td>
<td>å</td>
</tr>
<tr>
<td>10</td>
<td>CE,94</td>
<td>∆</td>
</tr>
<tr>
<td>11</td>
<td>5F</td>
<td>_</td>
</tr>
<tr>
<td>12</td>
<td>CE,A6</td>
<td>Φ</td>
</tr>
<tr>
<td>13</td>
<td>CE,93</td>
<td>Γ</td>
</tr>
<tr>
<td>14</td>
<td>CE,9B</td>
<td>Λ</td>
</tr>
<tr>
<td>15</td>
<td>CE,A9</td>
<td>Ω</td>
</tr>
<tr>
<td>16</td>
<td>CE,A0</td>
<td>Π</td>
</tr>
<tr>
<td>17</td>
<td>CE,A8</td>
<td>Ψ</td>
</tr>
<tr>
<td>18</td>
<td>CE,A3</td>
<td>Σ</td>
</tr>
<tr>
<td>19</td>
<td>CE,98</td>
<td>Θ</td>
</tr>
<tr>
<td>1A</td>
<td>CE,9E</td>
<td>Ξ</td>
</tr>
<tr>
<td>1B</td>
<td>1B</td>
<td>&lt;ESC&gt;</td>
</tr>
<tr>
<td>1C</td>
<td>C3,86</td>
<td>Æ</td>
</tr>
<tr>
<td>1D</td>
<td>C3,A6</td>
<td>æ</td>
</tr>
<tr>
<td>1E</td>
<td>C3,9F</td>
<td>ß</td>
</tr>
<tr>
<td>1F</td>
<td>C3,89</td>
<td>É</td>
</tr>
</tbody>
</table>
<table class="default">
<thead>
<tr>
<th>GSM</th>
<th>UTF-8</th>
<th>Char</th>
</tr>
</thead>
<tbody>
<tr>
<td>20</td>
<td>20</td>
<td>&lt;SP&gt;</td>
</tr>
<tr>
<td>21</td>
<td>21</td>
<td>!</td>
</tr>
<tr>
<td>22</td>
<td>22</td>
<td>“</td>
</tr>
<tr>
<td>23</td>
<td>23</td>
<td>#</td>
</tr>
<tr>
<td>24</td>
<td>C2,A4</td>
<td>¤</td>
</tr>
<tr>
<td>25</td>
<td>25</td>
<td>%</td>
</tr>
<tr>
<td>26</td>
<td>26</td>
<td>&amp;</td>
</tr>
<tr>
<td>27</td>
<td>27</td>
<td>‘</td>
</tr>
<tr>
<td>28</td>
<td>28</td>
<td>(</td>
</tr>
<tr>
<td>29</td>
<td>29</td>
<td>)</td>
</tr>
<tr>
<td>2A</td>
<td>2A</td>
<td>*</td>
</tr>
<tr>
<td>2B</td>
<td>2B</td>
<td>+</td>
</tr>
<tr>
<td>2C</td>
<td>2C</td>
<td>,</td>
</tr>
<tr>
<td>2D</td>
<td>2D</td>
<td>-</td>
</tr>
<tr>
<td>2E</td>
<td>2E</td>
<td>.</td>
</tr>
<tr>
<td>2F</td>
<td>2F</td>
<td>/</td>
</tr>
<tr>
<td>30</td>
<td>30</td>
<td>0</td>
</tr>
<tr>
<td>31</td>
<td>31</td>
<td>1</td>
</tr>
<tr>
<td>32</td>
<td>32</td>
<td>2</td>
</tr>
<tr>
<td>33</td>
<td>33</td>
<td>3</td>
</tr>
<tr>
<td>34</td>
<td>34</td>
<td>4</td>
</tr>
<tr>
<td>35</td>
<td>35</td>
<td>5</td>
</tr>
<tr>
<td>36</td>
<td>36</td>
<td>6</td>
</tr>
<tr>
<td>37</td>
<td>37</td>
<td>7</td>
</tr>
<tr>
<td>38</td>
<td>38</td>
<td>8</td>
</tr>
<tr>
<td>39</td>
<td>39</td>
<td>9</td>
</tr>
<tr>
<td>3A</td>
<td>3A</td>
<td>:</td>
</tr>
<tr>
<td>3B</td>
<td>3B</td>
<td>;</td>
</tr>
<tr>
<td>3C</td>
<td>3C</td>
<td>&lt;</td>
</tr>
<tr>
<td>3D</td>
<td>3D</td>
<td>=</td>
</tr>
<tr>
<td>3E</td>
<td>3E</td>
<td>&gt;</td>
</tr>
<tr>
<td>3F</td>
<td>3F</td>
<td>?</td>
</tr>
</tbody>
</table>
<table class="default">
<thead>
<tr>
<th>GSM</th>
<th>UTF-8</th>
<th>Char</th>
</tr>
</thead>
<tbody>
<tr>
<td>40</td>
<td>C2,A1</td>
<td>¡</td>
</tr>
<tr>
<td>41</td>
<td>41</td>
<td>A</td>
</tr>
<tr>
<td>42</td>
<td>42</td>
<td>B</td>
</tr>
<tr>
<td>43</td>
<td>43</td>
<td>C</td>
</tr>
<tr>
<td>44</td>
<td>44</td>
<td>D</td>
</tr>
<tr>
<td>45</td>
<td>45</td>
<td>E</td>
</tr>
<tr>
<td>46</td>
<td>46</td>
<td>F</td>
</tr>
<tr>
<td>47</td>
<td>47</td>
<td>G</td>
</tr>
<tr>
<td>48</td>
<td>48</td>
<td>H</td>
</tr>
<tr>
<td>49</td>
<td>49</td>
<td>I</td>
</tr>
<tr>
<td>4A</td>
<td>4A</td>
<td>J</td>
</tr>
<tr>
<td>4B</td>
<td>4B</td>
<td>K</td>
</tr>
<tr>
<td>4C</td>
<td>4C</td>
<td>L</td>
</tr>
<tr>
<td>4D</td>
<td>4D</td>
<td>M</td>
</tr>
<tr>
<td>4E</td>
<td>4E</td>
<td>N</td>
</tr>
<tr>
<td>4F</td>
<td>4F</td>
<td>O</td>
</tr>
<tr>
<td>50</td>
<td>50</td>
<td>P</td>
</tr>
<tr>
<td>51</td>
<td>51</td>
<td>Q</td>
</tr>
<tr>
<td>52</td>
<td>52</td>
<td>R</td>
</tr>
<tr>
<td>53</td>
<td>53</td>
<td>S</td>
</tr>
<tr>
<td>54</td>
<td>54</td>
<td>T</td>
</tr>
<tr>
<td>55</td>
<td>55</td>
<td>U</td>
</tr>
<tr>
<td>56</td>
<td>56</td>
<td>V</td>
</tr>
<tr>
<td>57</td>
<td>57</td>
<td>W</td>
</tr>
<tr>
<td>58</td>
<td>58</td>
<td>X</td>
</tr>
<tr>
<td>59</td>
<td>59</td>
<td>Y</td>
</tr>
<tr>
<td>5A</td>
<td>5A</td>
<td>Z</td>
</tr>
<tr>
<td>5B</td>
<td>C3,84</td>
<td>Ä</td>
</tr>
<tr>
<td>5C</td>
<td>C3,96</td>
<td>Ö</td>
</tr>
<tr>
<td>5D</td>
<td>C3,91</td>
<td>Ñ</td>
</tr>
<tr>
<td>5E</td>
<td>C3,9C</td>
<td>Ü</td>
</tr>
<tr>
<td>5F</td>
<td>C2,A7</td>
<td>§</td>
</tr>
</tbody>
</table>
<table class="default">
<thead>
<tr>
<th>GSM</th>
<th>UTF-8</th>
<th>Char</th>
</tr>
</thead>
<tbody>
<tr>
<td>60</td>
<td>C2,BF</td>
<td>¿</td>
</tr>
<tr>
<td>61</td>
<td>61</td>
<td>a</td>
</tr>
<tr>
<td>62</td>
<td>62</td>
<td>b</td>
</tr>
<tr>
<td>63</td>
<td>63</td>
<td>c</td>
</tr>
<tr>
<td>64</td>
<td>64</td>
<td>d</td>
</tr>
<tr>
<td>65</td>
<td>65</td>
<td>e</td>
</tr>
<tr>
<td>66</td>
<td>66</td>
<td>f</td>
</tr>
<tr>
<td>67</td>
<td>67</td>
<td>g</td>
</tr>
<tr>
<td>68</td>
<td>68</td>
<td>h</td>
</tr>
<tr>
<td>69</td>
<td>69</td>
<td>i</td>
</tr>
<tr>
<td>6A</td>
<td>6A</td>
<td>j</td>
</tr>
<tr>
<td>6B</td>
<td>6B</td>
<td>k</td>
</tr>
<tr>
<td>6C</td>
<td>6C</td>
<td>l</td>
</tr>
<tr>
<td>6D</td>
<td>6D</td>
<td>m</td>
</tr>
<tr>
<td>6E</td>
<td>6E</td>
<td>n</td>
</tr>
<tr>
<td>6F</td>
<td>6F</td>
<td>o</td>
</tr>
<tr>
<td>70</td>
<td>70</td>
<td>p</td>
</tr>
<tr>
<td>71</td>
<td>71</td>
<td>q</td>
</tr>
<tr>
<td>72</td>
<td>72</td>
<td>r</td>
</tr>
<tr>
<td>73</td>
<td>73</td>
<td>s</td>
</tr>
<tr>
<td>74</td>
<td>74</td>
<td>t</td>
</tr>
<tr>
<td>75</td>
<td>75</td>
<td>u</td>
</tr>
<tr>
<td>76</td>
<td>76</td>
<td>v</td>
</tr>
<tr>
<td>77</td>
<td>77</td>
<td>w</td>
</tr>
<tr>
<td>78</td>
<td>78</td>
<td>x</td>
</tr>
<tr>
<td>79</td>
<td>79</td>
<td>y</td>
</tr>
<tr>
<td>7A</td>
<td>7A</td>
<td>z</td>
</tr>
<tr>
<td>7B</td>
<td>C3,A4</td>
<td>ä</td>
</tr>
<tr>
<td>7C</td>
<td>C3,B6</td>
<td>ö</td>
</tr>
<tr>
<td>7D</td>
<td>C3,B1</td>
<td>ñ</td>
</tr>
<tr>
<td>7E</td>
<td>C3,BC</td>
<td>ü</td>
</tr>
<tr>
<td>7F</td>
<td>C3,A0</td>
<td>à</td>
</tr>
</tbody>
</table>
<h2>Extended GSM Characters</h2>
<p>In an SMS these are prefixed with the escape character (1B) and therefore take up 2 of the 160 characters of an SMS. They do not need escaping when sending into our API.</p>
<table class="default">
<thead>
<tr>
<th>GSM</th>
<th>UTF-8</th>
<th>Char</th>
</tr>
</thead>
<tbody>
<tr>
<td>10</td>
<td>0C</td>
<td>&lt;FF&gt;</td>
</tr>
<tr>
<td>14</td>
<td>5E</td>
<td>^</td>
</tr>
<tr>
<td>28</td>
<td>7B</td>
<td>{</td>
</tr>
<tr>
<td>29</td>
<td>7D</td>
<td>}</td>
</tr>
<tr>
<td>2F</td>
<td>5C</td>
<td>\</td>
</tr>
<tr>
<td>3C</td>
<td>5B</td>
<td>[</td>
</tr>
<tr>
<td>3D</td>
<td>7E</td>
<td>~</td>
</tr>
<tr>
<td>3E</td>
<td>5D</td>
<td>]</td>
</tr>
<tr>
<td>40</td>
<td>7C</td>
<td>|</td>
</tr>
<tr>
<td>65</td>
<td>E2,82,AC</td>
<td>€</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.mediaburst.co.uk/blog/the-gsm-character-set/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>API delivery receipt&#160;error codes</title>
		<link>http://www.mediaburst.co.uk/blog/api-delivery-receipt-error-codes/</link>
		<comments>http://www.mediaburst.co.uk/blog/api-delivery-receipt-error-codes/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 10:48:48 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[API & technical]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[GET]]></category>
		<category><![CDATA[sms]]></category>

		<guid isPermaLink="false">http://www.mediaburst.co.uk/tech/?p=141</guid>
		<description><![CDATA[We have now enabled each of our non-billed SMS routes to support the delivery receipt error codes that were previously only on our premium rate (reverse billed) SMS. When a message delivery fails and the network returns extra information to us regarding the failure, we can now send this information back to you in a [...]]]></description>
			<content:encoded><![CDATA[<p>We have now enabled each of our non-billed SMS routes to support the delivery receipt error codes that were previously only on our premium rate (reverse billed) SMS.<br />
<span id="more-509"></span></p>
<p>When a message delivery fails and the network returns extra information to us regarding the failure, we  can now send this information back to you in a standardised way.</p>
<p>The error code parameter is already defined in section 3.5 of the our API. Please contact us if you want this enabling on your default delivery receipt script. Alternatively, if you set this information when you send a message, you just need to use the ERR_CODE parameter. For instance, if delivery receipts are currently set up to be a GET request using the following parameters:</p>
<pre class="brush: plain; title: ; notranslate">client_id=#CLIENT_ID#&amp;status=#DELIVERY_STATUS#&amp;msg_id=#MSG_ID#</pre>
<p>Then the error code can be also passed by changing this to:</p>
<pre class="brush: plain; title: ; notranslate">client_id=#CLIENT_ID#&amp;status=#DELIVERY_STATUS#&amp;msg_id=#MSG_ID#&amp;err_code=#ERR_CODE#</pre>
<table class="default">
<caption>The possible error codes are as follows:</caption>
<thead>
<tr>
<th scope="col">Error Number</th>
<th scope="col">Description</th>
<th scope="col">Validity</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>No Error</td>
<td></td>
</tr>
<tr>
<td>1</td>
<td>Unknown &#8211; No details provided by network</td>
<td></td>
</tr>
<tr>
<td>2</td>
<td>Message details wrong</td>
<td>Permanent</td>
</tr>
<tr>
<td>3</td>
<td>Operator Error</td>
<td>Permanent</td>
</tr>
<tr>
<td>4</td>
<td>Operator Error</td>
<td>Temporary</td>
</tr>
<tr>
<td>5</td>
<td>Absent Subscriber</td>
<td>Permanent</td>
</tr>
<tr>
<td>6</td>
<td>Absent Subscriber</td>
<td>Temporary</td>
</tr>
<tr>
<td>7</td>
<td>Credit Related</td>
<td>Temporary</td>
</tr>
<tr>
<td>8</td>
<td>Subscriber Bar on Premium Rate content</td>
<td>Permanent</td>
</tr>
<tr>
<td>9</td>
<td>Phone Related Error</td>
<td>Permanent</td>
</tr>
<tr>
<td>10</td>
<td>Phone Related Error</td>
<td>Temporary</td>
</tr>
<tr>
<td>11</td>
<td>Message billed but not be delivered to handset</td>
<td>Permanent</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.mediaburst.co.uk/blog/api-delivery-receipt-error-codes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sending SMS via SMPP&#160;Interface</title>
		<link>http://www.mediaburst.co.uk/blog/smpp-interface/</link>
		<comments>http://www.mediaburst.co.uk/blog/smpp-interface/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 12:13:11 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[API & technical]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[smpp]]></category>
		<category><![CDATA[sms]]></category>

		<guid isPermaLink="false">http://www.mediaburst.co.uk/tech/?p=110</guid>
		<description><![CDATA[The SMPP SMS interface is now available on the new platform for sending via the SMS API. At the momenMSt delivery receipts are available over HTTP rather than SMPP. By default, the encoding is set to UTF-8, but it also supports Latin-1, UCS2 (Unicode), or GSM encodings. Give us a phone if you want to [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="/api/sending-a-message/interfaces/smpp/">SMPP SMS</a> interface is now available on the new platform for sending via the <a href="/api">SMS API</a>. At the momenMSt delivery receipts are available over HTTP rather than SMPP.</p>
<p>By default, the encoding is set to UTF-8, but it also supports Latin-1, UCS2 (Unicode), or GSM encodings.</p>
<p>Give us a phone if you want to know more.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mediaburst.co.uk/blog/smpp-interface/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Perl Module Config&#160;Files</title>
		<link>http://www.mediaburst.co.uk/blog/perl-module-config-files/</link>
		<comments>http://www.mediaburst.co.uk/blog/perl-module-config-files/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 13:59:29 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[API & technical]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://blogs.mediaburst.co.uk/tech/?p=74</guid>
		<description><![CDATA[We have now written a follow up post to this on Creating Perl module RPM&#8217;s. We have been investigating the various build/packaging options for perl modules. Up to now we have been using the standard method of &#8216;h2xs -AXn Module::Name&#8216;. This generates a template module with a ExtUtils::MakeMaker build file. We can then use cpan2rpm [...]]]></description>
			<content:encoded><![CDATA[<p>We have now written a follow up post to this on <a href="/blog/creating-perl-module-rpms/">Creating Perl module RPM&#8217;s</a>.</p>
<p>We have been investigating the various build/packaging options for perl modules.</p>
<p><span id="more-503"></span></p>
<p>Up to now we have been using the standard method of &#8216;<strong>h2xs -AXn </strong><em>Module::Name</em>&#8216;. This generates a template module with a ExtUtils::MakeMaker build file.</p>
<p>We can then use <a href="http://search.cpan.org/dist/cpan2rpm/" target="_blank">cpan2rpm</a> to create rpm files that we can put on our internal yum repositories.</p>
<p>This allows us to easily install/upgrade the same module across our various servers.</p>
<p>The problem has come when we wanted to have a slightly modified rpm e.g. have the rpm create a standard user, install a binary and/or init script, or create a config file.</p>
<p>The ExtUtils / cpan2rpm combination does not appear to have this functionality. We started looking at putting it in, but it was becoming increasingly difficult to do so.</p>
<p>So we started looking at Module::Build instead of ExtUtls. With this it is easier to make custom builds, and because of this seems to becoming increasingly popular as the Perl module builder.</p>
<p>For instance the Build.PL to enable a config file install into /etc and a logrotate script can be as follows:</p>
<pre class="brush: perl; title: ; notranslate">use 5.008005;
use Module::Build;

my $build = Module::Build-&gt;new (
module_name =&gt; 'ModuleName',
license =&gt; 'perl',
dist_author =&gt; 'A.N. Other &lt;a.n.other@example.com&gt;',
dist_version_from =&gt; 'lib/ModuleName.pm',
etc_files =&gt; {
'etc/logrotate.d/modulename' =&gt; 'etc/logrotate.d/modulename',
'etc/modulename.conf' =&gt; 'etc/modulename.conf'
},
install_path =&gt; { 'etc' =&gt; '/etc' },
);
$build-&gt;add_build_element('etc');
$build-&gt;create_build_script;</pre>
<p>We still need to use our modified cpan2rpm if we need any pre or post install scripts in the rpm. But so far this appears to be working.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mediaburst.co.uk/blog/perl-module-config-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Happy Birthday Nelson&#160;Mandela</title>
		<link>http://www.mediaburst.co.uk/blog/happy-birthday-nelson-mandela/</link>
		<comments>http://www.mediaburst.co.uk/blog/happy-birthday-nelson-mandela/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 01:00:00 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Industry news]]></category>

		<guid isPermaLink="false">http://blogs.mediaburst.co.uk/blog/2008/07/02/happy-birthday-nelson-mandela/</guid>
		<description><![CDATA[Nelson Mandela&#8217;s charitable organisations have launched an international SMS service to allow millions of people to donate money by texting a 90th birthday message to the former South African president. Premium SMS codes have been set up in more than 20 countries around the world, including the US, UK, South Africa, Australia, Spain, Germany and [...]]]></description>
			<content:encoded><![CDATA[<p>Nelson Mandela&#8217;s charitable organisations have launched an international <a href="/">SMS service</a> to allow millions of people to donate money by texting a 90th birthday message to the former South African president.<span id="more-840"></span></p>
<p>Premium SMS codes have been set up in more than 20 countries around the world, including the US, UK, South Africa, Australia, Spain, Germany and many African nations.  People will be able to text their own message to their country-specific short code and will then receive a thank you message with a unique pin number, allowing them to view the message securely online at a specially created birthday site.  The site will also contain a raft of celebrity messages both written and filmed by Mandela supporters around the world.   In the UK texts cost £1.50 plus the standard network rate.</p>
<p>All profits received from text charges will go to the Nelson Mandela Legacy Trust and other charitable organisations supported by Mandela.  Tim Massey, 46664 international director, said: &#8220;A text-based service allows more people to feel part of the celebrations in a very simple way and we hope to raise significant revenues to support the ongoing work of the charities that bear Mr Mandela&#8217;s name and 46664.&#8221;  We wish 46664 every success with this ground breaking initiative.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mediaburst.co.uk/blog/happy-birthday-nelson-mandela/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.458 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-07 08:30:22 -->
<!-- Compression = gzip -->
