EMS Message samples
Binary SMS powered by
Please note: samples
will appear different if you are using the trial version of the EMS Edition.
See the download page for details.
Here are a number of sample messages sent to a Siemens S55 handset.
These messages were sent through an SMS binary gateway,
using 8 bit encoding.
Examples are included in Visual Basic®
and Visual C++® .
Click here to
return to the samples index.
Please select a sample:
Example 1: EMS Text: Font Size, Font Alignment
Example 2: EMS Text: Formatting (Italic/Bold/Underline/Strikethrough)
Example 3: EMS Pictures: Formatted Text + 32x32 bitmap
Example 4: EMS Melody: Formatted Text + iMelody
Example 5: EMS Pictures: Custom image size
Example 6: EMS Animations: User defined 16x16 animation
Example 7: EMS Animation/Sound: Predefined EMS animation and sound
Sample 1: EMSTextComponent:
Formatted Text: Font Size, Font Alignment
This sample shows how to format the font size and
alignment properties of a piece of message text.
Click here to see a screenshot of the result.
Dim objEMSMessage As EMSMessage
Set objEMSMessage = objEMSMessageManager.CreateEMSMessage("")
Dim objEMSText As EMSTextComponent
'== Add 'Small'
Set objEMSText = objEMSMessage.AddComponent(emsComponent_Text)
objEMSText.MessageText = "Small" + Chr$(13)
objEMSText.FontSize = emsTextFont_Small
objEMSText.Alignment = emsTextAlign_Center
'== Add 'Normal'
Set objEMSText = objEMSMessage.AddComponent(emsComponent_Text)
objEMSText.MessageText = "Normal" + Chr$(13)
objEMSText.FontSize = emsTextFont_Normal
objEMSText.Alignment = emsTextAlign_Center
'== Add 'Large'
Set objEMSText = objEMSMessage.AddComponent(emsComponent_Text)
objEMSText.MessageText = "Large" + Chr$(13)
objEMSText.FontSize = emsTextFont_Large
objEMSText.Alignment = emsTextAlign_Center
IEMSMessageManagerPtr pMessageManager;
pMessageManager.CreateInstance(CLSID_EMSMessageManager);
IEMSMessagePtr pEMSMessage = pMessageManager->CreateEMSMessage("",
167);
// Add 'Small'
IEMSTextComponentPtr pText = pEMSMessage->AddComponent(emsComponent_Text);
pText->MessageText = "Small\n";
pText->FontSize = emsTextFont_Small;
pText->Alignment = emsTextAlign_Center;
// Add 'Normal'
pText = pEMSMessage->AddComponent(emsComponent_Text);
pText->MessageText = "Normal\n";
pText->FontSize = emsTextFont_Normal;
pText->Alignment = emsTextAlign_Center;
// Add 'Large'
pText = pEMSMessage->AddComponent(emsComponent_Text);
pText->MessageText = "Large\n";
pText->FontSize = emsTextFont_Large;
pText->Alignment = emsTextAlign_Center;
Click here to return to the samples index.
Sample 2: EMSTextComponent:
Formatted Text: Font formatting (italic/bold/underline/strikethrough)
This sample shows how to format the font display properties of a piece of message text.
Click here to see a screenshot of the result.
Dim objEMSMessage As EMSMessage
Set objEMSMessage = mobjEMSMessageManager.CreateEMSMessage("")
Dim objEMSText As EMSTextComponent
'== Add 'Underlined'
Set objEMSText = objEMSMessage.AddComponent(emsComponent_Text)
objEMSText.MessageText = "Underlined" + Chr$(13)
objEMSText.Underline = True
objEMSText.FontSize = emsTextFont_Small
objEMSText.Alignment = emsTextAlign_Center
'== Add 'Strikethough'
Set objEMSText = objEMSMessage.AddComponent(emsComponent_Text)
objEMSText.MessageText = "Normal" + Chr$(13)
objEMSText.Strikethrough = True
objEMSText.FontSize = emsTextFont_Small
objEMSText.Alignment = emsTextAlign_Center
'== Add 'Bold' + 'Italic'
Set objEMSText = objEMSMessage.AddComponent(emsComponent_Text)
objEMSText.MessageText = "Large" + Chr$(13)
objEMSText.Bold = True
objEMSText.Italic = True
objEMSText.FontSize = emsTextFont_Small
objEMSText.Alignment = emsTextAlign_Center
IEMSMessageManagerPtr pMessageManager;
pMessageManager.CreateInstance(CLSID_EMSMessageManager);
IEMSMessagePtr pEMSMessage = pMessageManager->CreateEMSMessage("",
167);
// Add 'Underlined'
IEMSTextComponentPtr pText = pEMSMessage->AddComponent(emsComponent_Text);
pText->MessageText = "Underlined\n";
pText->Underline = VARIANT_TRUE;
pText->FontSize = emsTextFont_Small;
pText->Alignment = emsTextAlign_Center;
// Add 'Strikethough'
pText = pEMSMessage->AddComponent(emsComponent_Text);
pText->MessageText = "Normal\n";
pText->Strikethrough = VARIANT_TRUE;
pText->FontSize = emsTextFont_Small;
pText->Alignment = emsTextAlign_Center;
// Add 'Bold' + 'Italic'
pText = pEMSMessage->AddComponent(emsComponent_Text);
pText->MessageText = "Large\n";
pText->Bold = VARIANT_TRUE;
pText->Italic = VARIANT_TRUE;
pText->FontSize = emsTextFont_Small;
pText->Alignment = emsTextAlign_Center;
Click here to return to the samples index.
Sample 3: EMSPictureComponent:
Images: Formatted Text + 32x32 bitmap
This sample shows how to display some text and an
image, both center aligned. This message type is great for logos,
promotions, etc.
This is the bitmap used in this message (you can grab
this image and try it yourself):
Note: different handsets may or may not require a
centering linefeed or carriage return in order to center an image.
Click here to see a screenshot of the result.
Dim objEMSMessage As EMSMessage
Set objEMSMessage = mobjEMSMessageManager.CreateEMSMessage("")
Dim objEMSText As EMSTextComponent
Dim objEMSPicture As EMSPictureComponent
'== Add 'Welcome'
Set objEMSText = objEMSMessage.AddComponent(emsComponent_Text)
objEMSText.MessageText = "Welcome!" + Chr$(13)
objEMSText.FontSize = emsTextFont_Large
objEMSText.Alignment = emsTextAlign_Center
'== Add a bitmap
Set objEMSPicture = objEMSMessage.AddComponent(emsComponent_Picture)
objEMSPicture.PictureType = emsPictureType_Fixed32by32
objEMSPicture.BitmapFileName = "c:\chart.bmp"
'== Add a single space. This will be centred by the
previously specified alignment.
'== Because the image is on the same line, it will be centred too.
Set objEMSText = objEMSMessage.AddComponent(emsComponent_Text)
objEMSText.MessageText = " "
IEMSMessageManagerPtr pMessageManager;
pMessageManager.CreateInstance(CLSID_EMSMessageManager);
IEMSMessagePtr pEMSMessage = pMessageManager->CreateEMSMessage("",
167);
IEMSTextComponentPtr pText= m_pEMSMessage->AddComponent(emsComponent_Text);
pText->MessageText = "Welcome!\r";
pText->FontSize = emsTextFont_Large;
pText->Alignment = emsTextAlign_Center;
// Add a bitmap
IEMSPictureComponentPtr pPicture = m_pEMSMessage->AddComponent(emsComponent_Picture);
pPicture->PictureType = emsPictureType_Fixed16by16;
pPicture->BitmapFileName = "c:\\chart.bmp";
// Add a single space. This will be centred by the previously specified
alignment.
// Because the image is on the same line, it will be centred too.
pText= m_pEMSMessage->AddComponent(emsComponent_Text);
pText->MessageText = " ";
Sample 4: EMSMelody:
Formatted Text + iMelody
This sample shows how to display some text and insert
an EMS Melody - an iMelody in this example.
You can look at the iMelody file
here (this is a .imy file so you may need to view it in a text editor).
Try a product like ToneSwap to create your iMelody and eMelody files.
Click here to see a screenshot of the result.
Dim objEMSMessage As EMSMessage
Set objEMSMessage = mobjEMSMessageManager.CreateEMSMessage("")
Dim objEMSText As EMSTextComponent
Dim objEMSMelody As EMSMelodyComponent
'== Add 'Your Melody!'
Set objEMSText = objEMSMessage.AddComponent(emsComponent_Text)
objEMSText.MessageText = "Your Melody!"
objEMSText.FontSize = emsTextFont_Small
objEMSText.Alignment = emsTextAlign_Center
'==Add an iMelody
Set objEMSMelody = objEMSMessage.AddComponent(emsComponent_Melody)
Dim objFS As New FileSystemObject
objEMSMelody.Payload = objFS.extFile("c:\melody.imy", ForReading).ReadAll
IEMSMessageManagerPtr pMessageManager;
pMessageManager.CreateInstance(CLSID_EMSMessageManager);
IEMSMessagePtr pEMSMessage = pMessageManager->CreateEMSMessage("",
167);
// Add 'Your Melody!'
IEMSTextComponentPtr pText = pEMSMessage->AddComponent(emsComponent_Text);
pText->MessageText = "Your Melody!";
pText->FontSize = emsTextFont_Small;
pText->Alignment = emsTextAlign_Center;
//Add an iMelody
IEMSMelodyComponentPtr pMelody = pEMSMessage->AddComponent(emsComponent_Melody);
pMelody->Payload =
"BEGIN:IMELODY\r\n"
"VERSION:1.2\r\n"
"FORMAT:CLASS1.0\r\n"
"NAME:One Note\r\n"
"BEAT:63\r\n"
"MELODY:*4#f4*\r\n"
"END:IMELODY\r\n";
Sample 5:
EMSPictureComponent: Custom image size
This example shows how to display a custom image.
The Enhanced Message Specification states that images
larger than 32x32 pixels need to be sent using UPI (User Prompt Indicator).
This is the bitmap used in this message (you can grab
this image and try it yourself):
Note the gaps in the screenshot of the sample. The S55
does not seem to support UPI properly, but take a look at the T310 - this is
a classic example of how the EMS specification is implemented differently,
even by the same manufacturer. (The Siemens example also shows a correctly
formatted large image).
Click here to see a screenshot of the result.
Dim objEMSMessage As EMSMessage
Set objEMSMessage = mobjEMSMessageManager.CreateEMSMessage("")
Dim objEMSPicture As EMSPictureComponent
'== Add a large picture
Set objEMSPicture = objEMSMessage.AddComponent(emsComponent_Picture)
objEMSPicture.PictureType = emsPictureType_UserDefined
objEMSPicture.BitmapFileName = "c:\chart2.bmp"
objEMSPicture.CopyProtected = True
'== Large picture - we need to set UPI
objEMSMessage.MessageCharacteristics = emsMC_UPI
IEMSMessageManagerPtr pMessageManager;
pMessageManager.CreateInstance(CLSID_EMSMessageManager);
IEMSMessagePtr pEMSMessage = pMessageManager->CreateEMSMessage("",
167);
IEMSPictureComponentPtr pPicture = pEMSMessage->AddComponent(emsComponent_Picture);
pPicture->PictureType = emsPictureType_UserDefined;
pPicture->BitmapFileName = "c:\\chart2.bmp";
pPicture->CopyProtected = VARIANT_TRUE;
// Large picture - we need to set UPI
pEMSMessage->MessageCharacteristics = emsMC_UPI;
Sample 6:
EMSAnimationComponent: Custom user-defined animation
This example shows how to display a user defined
16x16 pixel animation.
The frames used for this animation were:
Click here to see a screenshot of the result.
Dim objEMSMessage As EMSMessage
Set objEMSMessage = mobjEMSMessageManager.CreateEMSMessage("")
Dim objEMSAnimation As EMSAnimationComponent
Dim objEMSText As EMSTextComponent
'== Add '<My Anim!>'
Set objEMSText = objEMSMessage.AddComponent(emsComponent_Text)
objEMSText.MessageText = "<My Anim!>"
objEMSText.FontSize = emsTextFont_Large
objEMSText.Alignment = emsTextAlign_Center
'== Add an animation
Set objEMSAnimation = objEMSMessage.AddComponent(emsComponent_Animation)
objEMSAnimation.Animation = emsAnim_UserDefined16by16
objEMSAnimation.Frame1ImageFileName = "c:\1.bmp"
objEMSAnimation.Frame2ImageFileName = "c:\2.bmp"
objEMSAnimation.Frame3ImageFileName = "c:\3.bmp"
objEMSAnimation.Frame4ImageFileName = "c:\4.bmp"
IEMSMessageManagerPtr pMessageManager;
pMessageManager.CreateInstance(CLSID_EMSMessageManager);
IEMSMessagePtr pEMSMessage = pMessageManager->CreateEMSMessage("",
167);
// Add '<My Anim!>'
IEMSTextComponentPtr pText = pEMSMessage->AddComponent(emsComponent_Text);
pText->MessageText = "<My Anim!>";
pText->FontSize = emsTextFont_Large;
pText->Alignment = emsTextAlign_Center;
// Add an animation
IEMSAnimationComponentPtr pAnimation = pEMSMessage->AddComponent(emsComponent_Animation);
pAnimation->Animation = emsAnim_UserDefined16by16;
pAnimation->Frame1ImageFileName = "c:\1.bmp";
pAnimation->Frame2ImageFileName = "c:\2.bmp";
pAnimation->Frame3ImageFileName = "c:\3.bmp";
pAnimation->Frame4ImageFileName = "c:\4.bmp";
Sample 7:
EMSAnimationComponent and EMSSoundComponent: Pre-defined animation and sound
This example shows how to send an EMS predefined
animation and sound.
Click here to see a screenshot of the result.
Dim objEMSMessage As EMSMessage
Set objEMSMessage = mobjEMSMessageManager.CreateEMSMessage("")
Dim objEMSAnimation As EMSAnimationComponent
Dim objEMSSound As EMSSoundComponent
'== Add predefined animation
Set objEMSAnimation = objEMSMessage.AddComponent(emsComponent_Animation)
objEMSAnimation.Animation = emsAnim_Laughing
'== Add predefined sound
Set objEMSSound = objEMSMessage.AddComponent(emsComponent_Sound)
objEMSSound.Sound = emsSound_TaDa
IEMSMessageManagerPtr pMessageManager;
pMessageManager.CreateInstance(CLSID_EMSMessageManager);
IEMSMessagePtr pEMSMessage = pMessageManager->CreateEMSMessage("",
167);
// Add predefined animation
IEMSAnimationComponentPtr pEMSAnimation = pEMSMessage->AddComponent(emsComponent_Animation);
pEMSAnimation->Animation = emsAnim_Laughing;
// Add predefined sound
IEMSSoundComponentPtr pEMSSound = pEMSMessage->AddComponent(emsComponent_Sound);
pEMSSound->Sound = emsSound_TaDa;