OsStatus LoginCGI::handleWebRequest( UtlString* out ) { UtlString redirectUrl, dynamicHtml ; MailboxManager* pMailboxManager = MailboxManager::getInstance(); OsStatus result = pMailboxManager->getMediaserverURLForWeb( redirectUrl ) ; if( result == OS_SUCCESS ) { // Validate the mailbox id and extension. ValidateMailboxCGIHelper validateMailboxHelper ( m_userid ); result = validateMailboxHelper.execute( out ); if ( result == OS_SUCCESS ) redirectUrl += CGI_URL + UtlString( "?action=retrieve&fromweb=yes" ) ; else redirectUrl += VOICEMAIL_NOT_ENABLED_URL; dynamicHtml = HTML_BEGIN \ REDIRECT_SCRIPT_BEGIN + redirectUrl + REDIRECT_SCRIPT_END \ HTML_END ; } else { dynamicHtml = HTML_BEGIN \ PROTOCOL_MISMATCH \ HTML_END ; } if (out) { out->remove(0); out->append(dynamicHtml.data()); } return OS_SUCCESS ; }
OsStatus ManageNotificationsWebCGI::execute(UtlString* out) { // Validate the mailbox id and extension. ValidateMailboxCGIHelper validateMailboxHelper ( m_mailboxIdentity ); OsStatus result = validateMailboxHelper.execute( out ); if ( result == OS_SUCCESS ) { // Get the base URL for the Mediaserver MailboxManager* pMailboxManager = MailboxManager::getInstance(); result = pMailboxManager->getMediaserverURLForWeb( m_cgiUrl ) ; if( result == OS_SUCCESS ) { // Construct the base URL for the CGI m_cgiUrl += CGI_URL ; // Get the actual mailbox identity. validateMailboxHelper.getMailboxIdentity( m_mailboxIdentity ); // Call appropriate methods based on the action parameter if( m_action == "managenotifications" ) { result = getManageNotificationsUI(out) ; } else if( m_action == "geteditnotificationui" || m_action == "getaddnotificationui" ) { result = getAddEditNotificationsUI(out); } else if(m_action == "addnotification" || m_action == "editnotification" || m_action == "deletenotification" ) { result = addEditDeleteNotification( out ); } else { result = OS_FAILED ; } } else { UtlString dynamicHtml = HTML_BEGIN \ PROTOCOL_MISMATCH \ HTML_END ; if( out ) { out->remove(0); out->append( dynamicHtml.data() ); } result = OS_SUCCESS ; } } return result ; }
OsStatus RecycleDeletedMsgsCGI::handleWebRequest( UtlString* out ) { UtlString redirectUrl, dynamicHtml; MailboxManager* pMailboxManager = MailboxManager::getInstance(); OsStatus result = pMailboxManager->getMediaserverURLForWeb( redirectUrl ) ; if( result == OS_SUCCESS ) { // URL of the result webpage redirectUrl += UtlString( CGI_URL ) + "?action=playmsg&fromweb=yes&from=gateway" + "&nextblockhandle=" + UtlString( m_nextBlockHandle ) + "&category=deleted"; if( m_messageids.length() > 0 ) { // Instantiate the mailbox manager result = pMailboxManager->recycleDeletedMessages( m_mailboxIdentity, m_messageids ); // Add status to indicate the status of purge. if( result == OS_SUCCESS ) { redirectUrl += UtlString( "&status=" ) + RECYCLE_DELETED_MSG_SUCCESSFUL ; } else { redirectUrl += UtlString( "&status=" ) + RECYCLE_DELETED_MESSAGES_FAILED ; } } else { redirectUrl += UtlString( "&status=" ) + RECYCLE_DELETED_MSG_NOT_SELECTED ; } // Script for redirecting to the webpage displaying folder contents dynamicHtml = HTML_BEGIN \ REDIRECT_SCRIPT_BEGIN + redirectUrl + REDIRECT_SCRIPT_END \ HTML_END ; } else { dynamicHtml = HTML_BEGIN \ PROTOCOL_MISMATCH \ HTML_END ; } if (out) { out->remove(0); out->append(dynamicHtml.data()); } return OS_SUCCESS; }
OsStatus UpdateMessageStatesCGI::handleWebRequest( UtlString* out ) { // Instantiate the mailbox manager UtlString redirectUrl, dynamicHtml ; MailboxManager* pMailboxManager = MailboxManager::getInstance(); OsStatus result = pMailboxManager->getMediaserverURLForWeb( redirectUrl ) ; if( result == OS_SUCCESS ) { // We have revised the links that invoke this CGI pathway // so that the messageId parameter is now just the eight-digit // message ID. UtlString messageId = m_messageIds; result = pMailboxManager->updateMessageStates( m_mailboxIdentity, m_category, messageId); // URL of the message WAV file Url url ( m_mailboxIdentity ); UtlString userId; url.getUserId( userId ); // Null HTML file. dynamicHtml = HTML_BEGIN \ HTML_END ; } else { dynamicHtml = HTML_BEGIN \ PROTOCOL_MISMATCH \ HTML_END ; } if (out) { out->remove(0); out->append(dynamicHtml.data()); } OsSysLog::add(FAC_MEDIASERVER_CGI, PRI_DEBUG, "UpdateMessageStatesCGI::handleWebRequest: out = '%s'", out->data()); return OS_SUCCESS; }
OsStatus UpdateMessageStatesCGI::handleEmailRequest( UtlString* out ) { // Instantiate the mailbox manager UtlString redirectUrl, dynamicHtml ; MailboxManager* pMailboxManager = MailboxManager::getInstance(); OsStatus result = pMailboxManager->getMediaserverURLForWeb( redirectUrl ) ; if( result == OS_SUCCESS ) { // Strip of the "-dd.wav" from messageIds. UtlString messageId = m_messageIds( 0, m_messageIds.length()-7); result = pMailboxManager->updateMessageStates( m_mailboxIdentity, m_category, messageId); if (result == OS_SUCCESS) { // URL of the message WAV file Url url ( m_mailboxIdentity ); UtlString userId; url.getUserId( userId ); redirectUrl += UtlString( URL_SEPARATOR ) + MEDIASERVER_ROOT_ALIAS + URL_SEPARATOR + MAILBOX_DIR + URL_SEPARATOR + userId + URL_SEPARATOR + m_category + URL_SEPARATOR + m_messageIds ; // Script for playing the WAV file dynamicHtml = HTML_BEGIN \ EMBED_MEDIAPLAYER_PLUGIN \ "<SCRIPT language=\"JavaScript\">\n" \ "<!-- \n" "playMsgJs('" + redirectUrl + "'); \n" \ "// -->\n" \ "</SCRIPT>\n" \ "<b class=\"statustext\">Message is now playing. Please make sure your PC speaker is turned on.</b>" \ HTML_END ; } else if (result == OS_NOT_FOUND) { dynamicHtml = HTML_BEGIN \ "Message is not found in " + m_category + ", may have been saved or deleted." \ HTML_END ; } } else { dynamicHtml = HTML_BEGIN \ PROTOCOL_MISMATCH \ HTML_END ; } if (out) { out->remove(0); out->append(dynamicHtml.data()); } return OS_SUCCESS; }
OsStatus ManageFoldersWebCGI::execute(UtlString* out) { // Validate the mailbox id and extension. ValidateMailboxCGIHelper validateMailboxHelper ( m_mailboxIdentity ); OsStatus result = validateMailboxHelper.execute( out ); if ( result == OS_SUCCESS ) { MailboxManager* pMailboxManager = MailboxManager::getInstance(); result = pMailboxManager->getMediaserverURLForWeb( m_cgiUrl ) ; if( result == OS_SUCCESS ) { m_cgiUrl += CGI_URL ; // unescape the folder names HttpMessage::unescape( m_newFolder ); HttpMessage::unescape( m_oldFolder ); validateMailboxHelper.getMailboxIdentity( m_mailboxIdentity ); if( m_action == "getpersonalfolders" ) { result = getPersonalFolders(out) ; } else if( m_action == "getfolders" ) { result = getAllFolders( out ); } else if(m_action == "addfolder" || m_action == "editfolder" || m_action == "deletefolder" ) { result = addEditDeleteFolder( out ); } else if(m_action == "getaddfolderui" || m_action == "geteditfolderui" ) { result = getAddEditFolderUI( out ); } else { result = OS_FAILED ; } } else { UtlString dynamicHtml = HTML_BEGIN \ PROTOCOL_MISMATCH \ HTML_END ; if( out ) { out->remove(0); out->append( dynamicHtml.data() ); } result = OS_SUCCESS ; } } return result ; }