Just a small pointer: use CMD_Display_Alert command. Sample from Xine_Player:
1651 void Xine_Player::SendMessageToOrbiter(string sMessage)
1652 {
1653 DCE::CMD_Display_Alert cmd(m_dwPK_Device, m_pData->m_dwPK_Device_ControlledVia, sMessage, "xine_player_message", "10", interuptAlways);
1654 SendCommandNoResponse(cmd);
1655 LoggerWrapper::GetInstance()->Write(LV_CRITICAL,"Xine_Player::SendMessageToOrbiter sent message: %s", sMessage.c_str() );
1656 }
Here it sends message from Xine device (m_dwPK_Device) to controlling device - i.e. corresponding Orbiter (m_pData->m_dwPK_Device_ControlledVia). See the Orbiter.cpp : header of function
void Orbiter::CMD_Display_Alert(string sText,string sTokens,string sTimeout,int iInterruption,string &sCMD_Result,Message *pMessage)
contains info about parameters (or just use webadmin/DCE stuff to read about that command - also you can use webui to send "Display Alert" message to Orbiter from browser).
See also my recent post about TailDCERouter.sh tool - you can use it to see which messages are passing.