Sending Cross Currency in Ripple
So, after many days I was able to solve this problem. I was able to send transaction from one customer having (NGN) to another Customer who received it in (USD).

For others who may likely face similar problem in the future, this are the steps I took to solve this problem.

Step 1

I created offers for all the currencies. see example request and response below

{
  "method": "submit",
  "params": [
    {
      "offline": false,
      "secret": "snYothV5CFDMpMYStmL5VwMHzxHFr",
      "fee_mult_max": 1000,
      "tx_json": {
        "TakerGets": {
          "currency": "EUR",
          "value": "0.94",
          "issuer": "rJ5mA3kRwJWahdb3GqH3vmrbRd7eVufsVk"
        },
        "TakerPays": {
          "currency": "USD",
          "value": "1",
          "issuer": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ"
        },
        "Account": "rJ5mA3kRwJWahdb3GqH3vmrbRd7eVufsVk",
        "TransactionType": "OfferCreate",
        "Fee": "12",
        "Flags": "65536"
      }
    }
  ]
}

and sample response

{
  "result": {
    "engine_result": "tesSUCCESS",
    "engine_result_code": 0,
    "engine_result_message": "The transaction was applied. Only final in a validated ledger.",
    "status": "success",
    "tx_blob": "1200072200010000240000001764D4838D7EA4C68000000000000000000000000000555344000000000045249D498FF76EF67DACD0958930DB02EE4A9D4465D46165400CE380000000000000000000000000004555520000000000C260B3831882A44608EE81C2F3726AA72D11CA9568400000000000000C732102272E391673B735C9D96435DAFF89F9EA7B4EC285C39643A754848EDE19A6542674473045022100CD7511B302ED7D0C299C0F2C1014EA5AA62F7584B361B940C0E8A98FBA04EDE10220047590E7A678818000B5B221EBBC3D21AB1FCE5C003F8F02AAC41F96D054F90A8114C260B3831882A44608EE81C2F3726AA72D11CA95",
    "tx_json": {
      "Account": "rJ5mA3kRwJWahdb3GqH3vmrbRd7eVufsVk",
      "Fee": "12",
      "Flags": 65536,
      "Sequence": 23,
      "SigningPubKey": "02272E391673B735C9D96435DAFF89F9EA7B4EC285C39643A754848EDE19A65426",
      "TakerGets": {
        "currency": "EUR",
        "issuer": "rJ5mA3kRwJWahdb3GqH3vmrbRd7eVufsVk",
        "value": "0.94"
      },
      "TakerPays": {
        "currency": "USD",
        "issuer": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ",
        "value": "1"
      },
      "TransactionType": "OfferCreate",
      "TxnSignature": "3045022100CD7511B302ED7D0C299C0F2C1014EA5AA62F7584B361B940C0E8A98FBA04EDE10220047590E7A678818000B5B221EBBC3D21AB1FCE5C003F8F02AAC41F96D054F90A",
      "hash": "C35F98185CEBD03EEBCBDB6BB4364288DD8A0EDCF6FE137E9E3950524353AC8B"
    }
  }
}

Step 2
I Did a find path to get the path to use in sending the transaction, based on the offers earlier created in step 1

{
  "method": "ripple_path_find",
  "params": [
    {
      "source_account": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ",
      "source_currencies": [
        {
          "currency": "XRP"
        },
        {
          "currency": "USD"
        }
      ],
      "destination_amount": {
        "currency": "NGN",
        "value": "305",
        "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD"
      },
      "destination_account": "rwRRz7yt7GXe2NjZjB9ruLs7r71fi1WNpQ",
      "SendMax": {
        "currency": "USD",
        "value": "1",
        "issuer": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ"
      }
    }
  ]
}

Sample Response

{
  "result": {
    "alternatives": [
      {
        "paths_canonical": [],
        "paths_computed": [
          [
            {
              "account": "rntHFZfVgoCeBNYDxSejkPewViFow1Sz6r",
              "type": 1,
              "type_hex": "0000000000000001"
            },
            {
              "account": "rJHPyhod8HuZhps6Gerf7t3yLfinpVLXNT",
              "type": 1,
              "type_hex": "0000000000000001"
            },
            {
              "currency": "NGN",
              "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD",
              "type": 48,
              "type_hex": "0000000000000030"
            }
          ],
          [
            {
              "currency": "EUR",
              "issuer": "rJ5mA3kRwJWahdb3GqH3vmrbRd7eVufsVk",
              "type": 48,
              "type_hex": "0000000000000030"
            },
            {
              "currency": "NGN",
              "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD",
              "type": 48,
              "type_hex": "0000000000000030"
            }
          ]
        ],
        "source_amount": {
          "currency": "USD",
          "issuer": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ",
          "value": "1"
        }
      }
    ],
    "destination_account": "rwRRz7yt7GXe2NjZjB9ruLs7r71fi1WNpQ",
    "destination_amount": {
      "currency": "NGN",
      "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD",
      "value": "305"
    },
    "destination_currencies": [
      "NGN",
      "XRP"
    ],
    "full_reply": true,
    "ledger_current_index": 3,
    "source_account": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ",
    "status": "success",
    "validated": false
  }
}

Step 3
I used one of the paths returned in the response from above to send payment request.

Sample Request

{
  "method": "submit",
  "params": [
    {
      "offline": false,
      "secret": "sn1GPS42vNZXg6GYrsSXxYv2VrbkG",
      "fee_mult_max": 100000,
      "tx_json": {
        "Amount": {
          "currency": "NGN",
          "value": "305",
          "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD"
        },
        "Account": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ",
        "Destination": "rwRRz7yt7GXe2NjZjB9ruLs7r71fi1WNpQ",
        "TransactionType": "Payment",
        "Fee": "10",
        "Flags": "0",
        "Paths": [
          [
            {
              "type_hex": "0000000000000030",
              "issuer": "rJ5mA3kRwJWahdb3GqH3vmrbRd7eVufsVk",
              "type": "48",
              "currency": "EUR"
            },
            {
              "type_hex": "0000000000000030",
              "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD",
              "type": "48",
              "currency": "NGN"
            }
          ]
        ],
        "SendMax": {
          "currency": "USD",
          "value": "1",
          "issuer": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ"
        }
      }
    }
  ]
}

Sample Response

{
  "result": {
    "engine_result": "tesSUCCESS",
    "engine_result_code": 0,
    "engine_result_message": "The transaction was applied. Only final in a validated ledger.",
    "status": "success",
    "tx_blob": "1200002200000000240000000461D50AD5F57690A0000000000000000000000000004E474E00000000009B0C47828166D6258E8E7F0AA3B464FEA9C17E6668400000000000000A69D4838D7EA4C68000000000000000000000000000555344000000000045249D498FF76EF67DACD0958930DB02EE4A9D4473210336DF52033C6AE8F955A8AE89CE32793C0DB54A3DA2477A0F769EA9A4320D754D74463044022019DBE3D2C7ADF58AD35F1924889B8612EC46E8421492BDC591D50EEABCBC0BA9022046F9D34D8DAF24698B3B5A973AB575E5901A1C14EB80E8ABDC25B0D8010F0983811445249D498FF76EF67DACD0958930DB02EE4A9D4483146757FA04E0212B971F7F76E3E4A85A1B280EAE770112300000000000000000000000004555520000000000C260B3831882A44608EE81C2F3726AA72D11CA95300000000000000000000000004E474E00000000009B0C47828166D6258E8E7F0AA3B464FEA9C17E6600",
    "tx_json": {
      "Account": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ",
      "Amount": {
        "currency": "NGN",
        "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD",
        "value": "305"
      },
      "Destination": "rwRRz7yt7GXe2NjZjB9ruLs7r71fi1WNpQ",
      "Fee": "10",
      "Flags": 0,
      "Paths": [
        [
          {
            "currency": "EUR",
            "issuer": "rJ5mA3kRwJWahdb3GqH3vmrbRd7eVufsVk",
            "type": 48,
            "type_hex": "0000000000000030"
          },
          {
            "currency": "NGN",
            "issuer": "rE3FSvB4Q59WZUXcDyB8tgAFBTZMwCJ1FD",
            "type": 48,
            "type_hex": "0000000000000030"
          }
        ]
      ],
      "SendMax": {
        "currency": "USD",
        "issuer": "rfJbVE7tTrkbmuqTBvhdYDRExp9oamTzrQ",
        "value": "1"
      },
      "Sequence": 4,
      "SigningPubKey": "0336DF52033C6AE8F955A8AE89CE32793C0DB54A3DA2477A0F769EA9A4320D754D",
      "TransactionType": "Payment",
      "TxnSignature": "3044022019DBE3D2C7ADF58AD35F1924889B8612EC46E8421492BDC591D50EEABCBC0BA9022046F9D34D8DAF24698B3B5A973AB575E5901A1C14EB80E8ABDC25B0D8010F0983",
      "hash": "58906C7DEFCF60ED6AC55A646BE3BF50E32F7B633AC6CD62E1AA6799888AA5EA"
    }
  }
}